如何检索在另一个表中没有任何引用的所有记录?

时间:2009-12-07 13:30:18

标签: mysql

TableA 
id, name
1, abc
2, cde
3, def


TableB
id, TableA_id, topic
1, 1, blah 
2, 1, blah again
3, 2, abcdef 

我想从TableA中选择所有那些在TableB中没有任何引用的记录。我怎么在Mysql中做到这一点?

非常感谢。

4 个答案:

答案 0 :(得分:6)

您可以使用LEFT JOIN并选择这些在B中没有匹配记录的记录。

SELECT
  TableA.*
FROM
  TableA
  LEFT JOIN
    TableB 
  ON
    TableB.TableA_id = TableA.id
WHERE
  TableB.id IS NULL

答案 1 :(得分:1)

SELECT TableA.*
FROM TableA
LEFT JOIN TableB ON (TableA.id = TableB.TableA_id)
WHERE TableB.id IS NULL

答案 2 :(得分:1)

Select a.*
From TableA a
Left Outer Join TableB b on b.TableA_id=a.id
Where b.id is NULL

答案 3 :(得分:0)

SELECT * FROM TableA WHERE id NOT IN (SELECT TableA_id FROM TableB)