1
私は、同様の構造を持つ2つのテーブルを持っています。各テーブルはId
とFirstValue
とSecondValue
フィールドを持っています。私はLinq-to-SQLを使用して、TableTwo
(Id
に基づいて)にはないTableOne
の各行を取得し、両方のテーブルにある各行を取得しますが、異なる値はFirstValue
またはSecondValue
です。 SQLは、私が 異なる値を持つ行を取得するか、1つのテーブルから行を取得しない
(from a in context.TableOne
from b in context.TableTwo.Where(b =>
a.Id == b.Id &&
(a.FirstValue != b.FirstValue ||
a.SecondValue != b.SecondValue)).DefaultIfEmpty()
select a).ToList();
を試してみた
SELECT TableOne.*
FROM TableOne
LEFT OUTER JOIN TableTwo
ON TableOne.Id = TableTwo.Id
WHERE TableTwo.Id IS NULL
OR (TableTwo.Id IS NOT NULL AND
(TableOne.FirstValue <> TableTwo.FirstValue OR
TableOne.SecondValue <> TableTwo.SecondValue
)
)
のようなものでなければなりません
そのクエリで問題がTableOne
とTableTwo
が一致する値を持っている場合は、まだ行が返されるということですが、TableTwo
のすべて値はnullです。各テーブルで同じ行の値がある場合は、まったく返されないようにします。
ありがとうございます。それは完璧に働いた。 –