NOT EXISTS
を使用できます
SELECT a.id, a.name
FROM A
WHERE NOT EXISTS
(
SELECT 1 FROM B
WHERE b.A = a.id AND b.cond = 'X'
)
ただし、MySqlがEXISTS
を最適化するのに問題がある唯一の(?)rdbmsであることを常に忘れています。 /NOT EXISTS
。したがって、LEFT JOIN
を使用する方が少し効率的です。 アプローチ。
http://explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is-null-mysql/
MS SQL-Serverでは、NOT EXISTS
を使用することをお勧めします 。
http://sqlperformance.com/2012/12 / t-sql-queries / left-anti-semi-join