![](/img/trans.png)
[英]Select rows from SQL table where ALL of a set of parameters exist in joined table
[英]SQL Select rows from table where all joined rows match value
我想我現在已經了解問題了。 可能是更好的方法,但這應該可行。
SELECT *
FROM A
LEFT JOIN B ON A.ID1 = B.ID1
LEFT JOIN C ON B.ID2 = C.ID2
WHERE C.ID2 in (SELECT ID2 FROM C WHERE VALUE = 'N')
AND C.ID2 not in (SELECT ID2 FROM C WHERE VALUE <> 'N')
您可以通過UNION ALL
執行此操作。 注意: select語句中的列數應匹配
Select *
FROM (
SELECT * FROM A
UNION ALL
SELECT * FROM B
UNION ALL
SELECT * FROM C
)a
where value ='N'
更新:
Select * From A
LEFT JOIN ( Select * FROM B INNER JOIN C
ON B.columnName = C.ColumnName
WHERE C.Value ='N') z
ON z.columnName = A.ColumnName
該查詢返回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'
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.