我所在的地方
Select B.ID,
B.TIME_1,
B.TIME_2,
a.event_type,
a.jew,
c.dist
from B, table1 a left outer join table3 c on a.jew = c.mew
Where B.ID = A.ID
AND a.event_type in ('APPLE','ORANGE','GRAPE')
我的问题是我的遗嘱没有显示,例如ID的某些记录不是全部3(苹果,橙子,葡萄)。我仍然想要提取所有ID,即使它没有全部3或没有Apple orange,Grape。
实施例: 假设我的数据库总共有5条记录
ID = 1
的活动类型为Apple
,Orange
,Grape
也没有,但它还有其他我也不关心它
ID = 2
Apple
ID = 3
Orange
ID = 4
Apple
,Orange
Grape
ID = 5
没有3个,但其他我不在乎
所以目前我的查询只是拉ID = 1,我想修改它拉出所有5条件的位置。
答案 0 :(得分:1)
您还需要对table1进行左连接,并在B和table1之间没有匹配时添加条件:
SELECT B.ID,
B.TIME_1,
B.TIME_2,
A.event_type,
A.jew,
C.dist
FROM B
LEFT OUTER JOIN table1 A
ON B.ID = A.ID
LEFT OUTER JOIN table3 C
ON A.jew = C.mew
WHERE A.event_type IS NULL
OR A.event_type in ('APPLE','ORANGE','GRAPE')
答案 1 :(得分:1)
您想要三种事件类型中的任何一种或没有。为此,使用左外连接,但将所有条件放在on
子句中:
SELECT B.ID, B.TIME_1, B.TIME_2, A.event_type, A.jew, C.dist
FROM B left outer join
table1 A
ON B.ID = A.ID and
A.event_type in ('APPLE','ORANGE','GRAPE') LEFT OUTER JOIN
table3 C
ON A.jew = C.mew