恩里科
我有表A中链接到表B中,其又连接到表C中。
我只能通过B中的键从A转到C。
我必须从A获取所有行,其中C的所有链接行都具有C.value ='Y'
我尝试了以下代码,但一旦在C中的链接行之一中找到匹配项,它就已经从A中选择了行,而不是当C中的所有链接行都匹配C.value ='Y'时。
SELECT * FROM A
LEFT JOIN B ON A.ID1 = B.ID1
LEFT JOIN C ON B.ID2 = C.ID2
WHERE C.value = 'Y'
有没有办法在SQL中做到这一点?
恩里科
该查询返回A中的所有行,其中C中所有链接的行都具有C.value'Y',或者没有可用的B或C链接。关于JB King的建议。
SELECT * FROM A WHERE A.ID1
NOT IN
(
SELECT DISTINCT A.ID1 FROM A
JOIN B ON A.ID1=B.ID1
JOIN C ON B.ID2=C.ID2 WHERE C.value = 'N'
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句