Sql Server 2008 に 2 つのテーブルがあります
ownership
。3 つのフィールドとcase
、ID フィールド (bigint) で両方を結合する必要がある別の 3 つのフィールドがあります。
テスト目的で、各テーブルから 1 つのフィールドのみを使用しています。このフィールドは bigint で、1 から 170 までの値を持ちます (現時点では)。
私のクエリは次のとおりです。
SELECT DISTINCT
ownership.fCase,
case.id
FROM
ownership LEFT JOIN case ON (case.id=ownership.fCase)
WHERE
ownership.dUser='demo'
これは、両方の列で同じ値を持つ 4 つの行を返すことが期待されていました。問題は、右側のテーブルの最後の行が fCase = 140 の場合に null になることです。これは 100 を超える唯一の値です。
WHERE 句を指定せずにクエリを実行すると、左側のテーブルにすべての行が表示されますが、右側の値は 101 未満の場合にのみ表示され、それ以外の場合は null が表示されます。
誰かが私を助けることができますか、私は何か間違ったことをしていますか、それともこれは制限またはバグですか?