2017-10-02 8 views
-7

この2つのテーブルは外部キーとの結合です。私は情報にいくつかの値を挿入するが、私はどの値が名前テーブルから情報に挿入されていないかを知る必要がある。 Iはname.idを見つける意味は規範的なアプローチは、抗参加パターンで等しいinfo.sidSQL外部キーと結合する2つのテーブルがあります。私は2番目のテーブルから見つからないIDを探したい

enter image description here

enter image description here

+1

現在の結果:予想された結果? –

+1

これは単純な結合、LEFTまたはRIGHTだけでなく、そこではIDがどこにNULL(一致しない)かを指定する必要があります。何か詳細な回答が必要な場合は、いくつかのデータと期待される結果(画像とは対照的に)を掲示してください。また、どのデータベースエンジンを使用していますか? SQL ServerとMySQLは異なるものです – Leonidas199x

+0

https://meta.stackoverflow.com/questions/285551/why-not-upload-images-of-code-on-so-when-asking-a-question – spencer7593

答えて

1

ありません。基本的に

表2に一致する行を持たないid列の値を有する表1に行を検索(すなわち行が一致fk_id値と表2に存在しない)

SELECT t1.id 
    FROM table1 t1 
    LEFT 
    JOIN table2 t2 
    ON t2.fk_id = t1.id 
    WHERE t2.fk_id IS NULL 

このクエリtable2の一致する行とともにtable1のすべての行を返しますが、はtable2に一致する行が見つかった個の行を除外します。 table2に一致していないtable1の行だけを残しておきます。

これは、1つのアプローチのデモンストレーションです。同等の結果を返すクエリパターンが2つあります。

関連する問題