3

画像のテーブルを検討してください

ここに画像の説明を入力

同じReferenceIdを持つTable2のアイテムを除いてTable1から行を選択する方法は?

結果は

ここに画像の説明を入力

4

5 に答える 5

3

同じReferenceIdを持つTable2の項目を除いて、Table1から行を選択するにはどうすればよいですか?

その後、によって除外ReferenceIdしますt2.ReferenceId <> t1.ReferenceId

SELECT t1.id, t1.ReferenceID FROM t1 
INNER JOIN t2 ON t1.id = t2.id
WHERE t2.ReferenceID <>  t1.ReferenceID;

このSQLFiddleを参照してください

于 2012-09-06T09:43:04.567 に答える
3

LEFT OUTER結合を使用して、ReferenceIdのテーブルを結合し、戻り値をTable2のReferenceIdがNULLになる場所に制限できます。

SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.ReferenceId = Table2.ReferenceId
WHERE Table2.ReferenceId IS NULL
于 2012-09-06T09:38:28.950 に答える
3

次のようなものを使用できます。

SELECT  Id
        ,ReferenceId
FROM    Table1
WHERE   ReferenceId NOT IN (SELECT DISTINCT ReferenceId FROM Table2);
于 2012-09-06T09:37:27.360 に答える
1
SELECT table1.id, table1.ReferenceID from table1 
     inner join table2 on table1.id = table2.id
EXCEPT
SELECT id, ReferenceID from table2
于 2012-09-06T09:34:57.313 に答える
0

条件付きで問い合わせる

SELECT *
FROM Table1 t1
 JOIN Table2 t2 on t1.Id = t2.Id
    AND t1.Id <> t1.ReferenceId
于 2012-09-06T09:46:57.253 に答える