下面是我的示例表。
事件表:-
id eventName modelId sheetId
1 Input edit 1 2
2 Formula edit 2 1
3 Delete model null 3
4 Delete sheet 3 null
型号表:-
id modelName
1 test1
2 test2
3 test3
工作表:-
id sheetName
1 testSheet1
2 testSheet2
3 testSheet3
现在我的要求总是我需要来自事件表的所有记录,我需要(事件表的所有列+modelName和sheetName)。
下面的查询我已经写好了,但是这个查询没有给出预期的输出,虽然我知道我需要使用左外部联接,但是我不能这样做:-
select
e.id,e.eventName,e.modelId,e.sheetId,m.modelName,s.sheetName
from
Event e,
Model m,
Sheet s
where e.modelId=m.id and e.sheetId=s.id;
预期产出:-
id eventName modelId sheetId modelName sheetName
1 Input edit 1 2 test1 testSheet2
2 Formula edit 2 1 test2 testSheet1
3 Delete model null 3 null testSheet3
4 Delete sheet 3 null test3 null
应该是非常基本的查询:
select
e.id,e.eventName,e.modelId,e.sheetId,m.modelName,s.sheetName
from
Event e
left join
Model m on m e.modelId=m.id
left join
Sheet s on e.sheetId=s.id;