1
我現在有一個查詢FROM表1 WHERE {對錶1的過濾器}和IDMySQL的加入和內選擇
SELECT ID NOT IN(SELECT table1ID FROM表2 WHERE條件= 0)
表1與table2有一對多的關係,我正在尋找條件爲0的table2中沒有條目的所有ID。
有沒有辦法重寫這個查詢沒有內部選擇?一段時間以來我一直在撓頭,任何指針都會受到歡迎。
我現在有一個查詢FROM表1 WHERE {對錶1的過濾器}和IDMySQL的加入和內選擇
SELECT ID NOT IN(SELECT table1ID FROM表2 WHERE條件= 0)
表1與table2有一對多的關係,我正在尋找條件爲0的table2中沒有條目的所有ID。
有沒有辦法重寫這個查詢沒有內部選擇?一段時間以來我一直在撓頭,任何指針都會受到歡迎。
你可以嘗試像
SELECT id
FROM table1 t1 LEFT JOIN
table2 t2 ON t1.ID = t2.table1ID
AND t2.Condition = 0
WHERE {filters on table1}
AND t2.table1ID IS NULL
還是一樣好,將
SELECT id
FROM table1 t1
WHERE {filters on table1}
AND NOT EXISTS (
SELECT 1
FROM table2 t2
WHERE t1.ID = t2.table1ID
ADN t2.condition = 0
)
那不是第一次查詢必須是一個OUTER JOIN? – 2010-11-26 08:22:44