【发布时间】:2010-11-19 18:20:47
【问题描述】:
我需要 LEFT 加入整个 t2+t3 分支,但如果我能在 t1 和 t2 之间找到匹配的连接,我想强制执行 t2 和 t3 连接。
SELECT T1.name,T2.bob,T3.a
FROM T1
LEFT JOIN T2 ON t1.id = t2.t1_id
JOIN T3 ON t2.id = T3.t2_id
语法是什么?
样本数据:
T1 [id,name]
1 aaa
2 bbb
3 ccc
T2 [id,t1_id,bob]
1,1,777
2,1,888
2,2,999
T3[id,t2_id,a]
1,2,'yeh'
预期结果:
[name] , [a] , [bob]
aaa , 'yeh' , 888
bbb , NULL , NULL
ccc , NULL , NULL
【问题讨论】:
-
那么您要排除 [a] 不为 NULL 且 [bob] 为 NULL 的行吗?
-
@Lynette Duffy - 不......这有点像 AND 语句。要么我得到 [A] AND [bob] 要么我没有得到(null,null)。不想在没有 [bob] 的情况下获得 [a],反之亦然。