2013-10-02 5 views
0

Я пытаюсь использовать приведенную ниже инструкцию SQL для извлечения данных из 3 таблиц. Однако я вижу синтаксическую ошибку рядом с [aren1002].SQL Выбор из нескольких таблиц при сопоставлении значений

select 
holiday_notes.*, 
HOLIDAY_REF.holiday_name as holiday_name from [aren1002].[HOLIDAY_NOTES] 
left join [aren1002].[HOLIDAY_REF] on holiday_notes.holiday_id=HOLIDAY_REF.holiday_id 

[aren1002].[lookup].lookup_desc as type_desc from [aren1002].[HOLIDAY_NOTES] 
left join [aren1002].[lookup] on holiday_notes.[type]=lookup.lookup_id 

where [HOLIDAY_NOTES].delete_date is null order by [HOLIDAY_NOTES].create_date desc 

Я пытаюсь добавить столбец holiday_name из HOLIDAY_REF и type_desc из второй таблицы (поиска). Я не совсем уверен, как структурировать утверждение.

ответ

3

Выбранные столбцы должны быть вставлены сразу после части запроса SELECT, после чего вы поместите предложение FROM вместе с любыми критериями присоединения. После этого вы можете поместить свой пункт WHERE.

select 
holiday_notes.*, 
HOLIDAY_REF.holiday_name as holiday_name, 
[aren1002].[lookup].lookup_desc, 
[aren1002].[lookup].type_desc 

from [aren1002].[HOLIDAY_NOTES] 
left join [aren1002].[HOLIDAY_REF] on holiday_notes.holiday_id=HOLIDAY_REF.holiday_id 
left join [aren1002].[lookup] on holiday_notes.[type]=lookup.lookup_id 
where [HOLIDAY_NOTES].delete_date is null order by [HOLIDAY_NOTES].create_date desc 
1

У вас есть дополнительный FROM.

Попробуйте

select 
holiday_notes.*, 
HOLIDAY_REF.holiday_name as holiday_name, 
[aren1002].[lookup].lookup_desc as type_desc 
from [aren1002].[HOLIDAY_NOTES] 
left join [aren1002].[HOLIDAY_REF] on holiday_notes.holiday_id=HOLIDAY_REF.holiday_id 
left join [aren1002].[lookup] on holiday_notes.[type]=lookup.lookup_id 
where [HOLIDAY_NOTES].delete_date is null order by [HOLIDAY_NOTES].create_date desc 

А оператор выбора, как правило, следуют образцу: SELECTнеобходимые поляFROMстол (необязательно) JOINприсоединиться заявления к другим таблицамWHEREусловия

0

Я не sql-гуру, и Я не в системе, где я могу быстро установить тест, так что это может быть совершенно и совершенно неправильно.

Но я уверен, что вы должны сначала выполнить все свои SELECT, а затем указать FROM и JOINs.

Так что я думаю, что вы хотите что-то вдоль линий:...

выберите holiday_notes *, HOLIDAY_REF.holiday_name как holiday_name, [aren1002] [поиск] .lookup_desc в type_desc из [aren1002] [HOLIDAY_NOTES ] влево присоединиться к [aren1002]. [HOLIDAY_REF] на holiday_notes.holiday = HOLIDAY_REF.holiday_id влево присоединиться к [aren1002]. [поиск] на holiday_notes. [тип] = lookup.lookup_id где [hOLIDAY_NOTES] .delete_date является нулевым заказ по [HOLIDAY_NOTES] .create_date desc

Смежные вопросы