MySQLで片方のテーブルにしか無い行のみを取り出す

MySQLで片方にしか存在しないレコードを検索

テーブルを比較して、片方のテーブルにしか無いレコードを検索したい場合があります。

例えばtableAにはあって、tableBには無いレコードを指定したい場合、これは下記のSQLで可能です。

SELECT * FROM tableA
WHERE NOT EXISTS (
	SELECT * FROM tableB
	WHERE tableA.id = tableB.tableA_id
);

not existsでtableBに存在せずtableAにしか存在しないレコードのみSELECTしています。

上のコードはtableAとtableBはidとtableA_idでリンクしている例です。

 

 

コメント