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

use*_*580 1 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 
Run Code Online (Sandbox Code Playgroud)

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

非常感谢.

Grz*_*lik 6

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

SELECT
  TableA.*
FROM
  TableA
  LEFT JOIN
    TableB 
  ON
    TableB.TableA_id = TableA.id
WHERE
  TableB.id IS NULL
Run Code Online (Sandbox Code Playgroud)