new table
のレコードと一致するレコードを除いてmaster table
からレコードを選択しようとしていますが、new table
がold table
に一致するレコードは除きます。 urn
フィールドは、それらの間の共通の分母です。別のレコードを除外する1つのテーブルからレコードを取得
私のクエリはこれです:
SELECT *
FROM `master`
JOIN `new` ON `master`.`urn` = `new`.`urn`
LEFT JOIN `old` ON `old`.`urn` = `new`.`urn`
私は、これは動作するはずです確信しているが、それは結果の正確な量を返しません。
どのような提案も大歓迎です!いいえがあるので、私は明示的なjoin
へexists
を好む
select m.*
from master m
where exists (select 1 from new n where n.urn = m.urn) and
not exists (select 1 from old o where o.urn = m.urn);
:あなたはこのようなクエリの場合、おそらく
SELECT *
FROM `master`
JOIN `new` ON `master`.`urn` = `new`.`urn`
LEFT JOIN `old` ON `old`.`urn` = `new`.`urn`
WHERE `old`.`urn` IS NULL;