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