使用应该嵌套的选择选择中间表中不存在的所有内容

时间:2014-03-01 08:22:16

标签: mysql select many-to-many

我有2个表t1和t2以及一个连接这两个表的中间表t2_has_t1(多对多)。

我想从t1中选择未链接到t2的所有内容(通过t2_has_t1)。我可以用嵌套选择来做,但我想知道这是否可以以更有效的方式完成

这个小提琴显示了我如何使用嵌套选择。

http://sqlfiddle.com/#!2/fb9d81/2/0 (小提琴更新)

1 个答案:

答案 0 :(得分:1)

如果您想在单个查询中执行此操作,则可以使用连接,如下所示:

SELECT * FROM t1
LEFT JOIN t2_has_t1
ON t1.id_t1 = t2_has_t1.fk_t2
WHERE t2_has_t1.fk_t2 IS NULL