JOINを私はAccessで、次のクエリを実行しようとしています:不正使用は、クエリ
SELECT CompareByOrderAndDescr.BOrder
FROM CompareByOrderAndDescr
LEFT JOIN OrdersNotReceived ON CompareByOrderAndDescr.BOrder = OrdersNotReceived.BOrder
WHERE OrdersNotReceived.BOrder Is Null
しかし、私はエラーメッセージ「NULLの無効な使用」を取得しています。
「CompareByOrderAndDescr」と「OrdersNotReceived」という2つの保存されたクエリがあります。どちらのクエリの "BOrder"フィールドにもNull値はありません。私はエラーの原因を探していますが、それらのどれもここには適用されないようです。
これは、あるテーブルから別のテーブルにないレコードを見つけるための基本的なSQLだと思っていました。私は何が欠けていますか?
編集:だけを明確にするには、次のクエリの両方が0行を返す:また、それは価値がある何のために、ここで私は保存する前に始まった元のクエリだ
SELECT * FROM CompareByOrderAndDescr
WHERE BOrder IS NULL
と
SELECT * FROM OrdersNotReceived
WHERE BOrder IS NULL
をOrdersNotReceivedクエリを問題の小さな部分に分解しようとして、それ自体の問題として処理します。
SELECT BOrder
FROM CompareByOrderAndDescr cb
LEFT JOIN (
SELECT BOrder
FROM CompareByOrderAndDescr
WHERE [Received]='Not Received') nr ON nr.BOrder=cb.BOrder
ジョインの右側にあるテーブルのジョイン・フィールドがヌルであるレコードを検索する場合、機能的にはwhere節のない内部ジョインと同じです –
@DavidCram what ?,いいえ、それはありませんINNER JOINと同じです。 – Lamak
@DavidCramありがとうございます。しかし、私はINNER JOINとして試してみましたが、残念ながらNullの無効な使用について同じエラーを受けました。 – elmer007