我有一个sql查询,它正在从一个表中检索结果,但是我需要它只在id不在另一个表中时显示结果。
例子$sql = "SELECT id FROM TABLE_1 WHERE id NOT IN(SELECT more_id FROM TABLE_2)
其思想是,如果“更多id”列表中不存在id,那么它应该显示结果。
这似乎不起作用,任何帮助都将非常感谢。
我应该提到“more_id”只是同一个“id”,但在另一个存储其他记录的表中。
最佳答案
这应该有效:
$sql = "SELECT TABLE_1.id
FROM TABLE_1
LEFT JOIN TABLE_2
ON TABLE_1.id = TABLE_2.more_id
WHERE TABLE_2.more_id IS NULL"
如果没有where子句,您将得到表1中所有项的列表,包括表2中有匹配项的项和没有匹配项的项。添加where子句过滤匹配项。