0

だから私は2つのテーブルを持っています。1 つは列「superID BIGINT」を持つ superID と呼ばれ、「subid BIGINT」と呼ばれる列を持つ mainID と呼ばれる別のものがあります。mainIDS が superID のサブセットであることは知っています。superID のみにあり、mainID にはない行を確認するにはどうすればよいですか。

これが私の解決策です:

SELECT * FROM atlas_comparables.superIDs WHERE NOT EXISTS
(SELECT * FROM atlas_comparables.mainIDs);

ただし、これは空のセットを返しています。何か助けはありますか?

4

2 に答える 2

2

これを試して

   SELECT * FROM atlas_comparables.superIDs WHERE the_id_column NOT IN
    (SELECT the_idcolumn_ofcomparable FROM tlas_comparables.mainIDs);

注:表 内はthe_id_column表内superIDsthe_idcolumn_ofcomparableMainIds

于 2013-07-02T18:30:19.413 に答える
0

ID が各テーブルに (最大で) 1 回しか表示されない場合は、左外部結合を使用して比較的簡単にこれを行うことができます。

select si.*
from atlas_comparables.superIDs si left join
     atlas_comparables.mainIDs mi
     on si.SuperID = mi.SubID
where mi.SubId is NULL;

すべての列を比較しようとしている場合 (他のデータベースと同様)、句exceptにすべての列を含める、より複雑なクエリが必要になります。on

于 2013-07-02T18:31:05.640 に答える