我现在有一个问题
SELECT id FROM table1 WHERE {filters on table1} AND id NOT IN (SELECT table1ID FROM table2 WHERE condition = 0)
Table1 与 table2 有 1 - Many 关系,我正在寻找在 table2 中没有条目且条件为 0 的所有 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
)
关于MySQL 连接和内部选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4283501/