我正在尝试使用下面的SQL语句从3个表中检索数据。我在[aren1002]附近遇到语法错误。
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_REF添加holiday_name列,从第二个表(lookup)添加type_desc。我不完全确定如何构建声明。
答案 0 :(得分: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 :(得分: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语句通常遵循以下模式:
SELECT
必填字段 FROM
表(可选)JOIN
将语句加入其他表 {{1 } 条件
答案 2 :(得分:0)
我不是sql guru,而且我不是一个可以快速设置测试的系统,所以这可能是完全错误的。
但我很确定你应该先做所有的SELECT,然后指定FROM和JOIN。
所以我认为你想要的东西是:
选择 holiday_notes。*,HOLIDAY_REF.holiday_name作为holiday_name,[aren1002]。[lookup] .lookup_desc as type_desc 来自[aren1002]。[HOLIDAY_NOTES] holiday_notes.holiday = HOLIDAY_REF.holiday_id左联接[aren1002]。[HOLIDAY_REF] left join [aren1002]。[lookup] on holiday_notes。[type] = lookup.lookup_id 其中[HOLIDAY_NOTES] .delete_date为空 按[HOLIDAY_NOTES] .create_date desc
排序