|
2013/08/05(Mon) 12:56:07 編集(投稿者)
shu様 お世話になります。 ご回答、ありがとうございます。
ひとまず、unionの前までで、以下のようにクエリを組みましたが、 アドバイスの意図とあっていますでしょうか?
※Q1クエリ SELECT tb1.ID, tb1.数値, tb1.テキスト FROM tb1 INNER JOIN tb2 ON (tb1.テキスト = tb2.テキスト) AND (tb1.数値 = tb2.数値) AND (tb1.ID = tb2.ID);
このクエリでは、NULL値を含むフィールドがある場合、そのレコードは抽出されません。
そのため、以下のクエリを実行した場合
SELECT tb1.ID, tb1.数値, tb1.テキスト FROM tb1 LEFT JOIN Q1 ON (tb1.テキスト = Q1.テキスト) AND (tb1.数値 = Q1.数値) AND (tb1.ID = Q1.ID) WHERE (((Q1.ID) Is Null) AND ((Q1.数値) Is Null) AND ((Q1.テキスト) Is Null));
すべてのフィールド内容が同じであっても、null値を含むフィールドがある場合は、そのレコードも抽出されます。
たとえば、
ID=1,数値=2,テキスト=null
というレコードが両方のテーブルに含まれると、 これが抽出されてしまいます。
SQLの意図が違っているようでしたら、ご教示いただければありがたいです。 よろしくお願いします。
|