• ベストアンサー

SQLでの複数列が重複してる行の削除(SQLite)

こんにちは。 複数の列で重複した列がある場合の行削除のクエリが思い付きません。 A表 A    B   C   D   ==== === === ==== 1 ああああ 100 200 ABCD 2 いいいい 200  90 ASKB 3 うううう 300 800 ALTE 4 ええええ 400 200 ABCD B表   ==== === === ==== 1 ああああ 100 200 ABCD 2 ああああ 400 100 ABCD このとき、A表とB表を比較し、B,C,D列で重複したデータをB表から削除した行を表示したいのです。 ほしいデータは B表   ==== === === ==== 2 ああああ 400 100 ABCD です。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

別解をひとつ提示。(ANo.1でもいけると思います) select B表.* from B表 where not exists ( select A表.* from A表 where A表.B = B表.B and A表.C = B表.C and A表.D = B表.D );

popoibbb
質問者

お礼

今回はjjon-com様の方法で解決してみようと思います。 助かりました。他にも方法がないか勉強してみます。 ありがとうございました。

その他の回答 (1)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

重複したデータを削除ではなく 重複していないデータを抽出と考えます SELECT テーブルB.* FROM テーブルB WHERE (((テーブルB.B) Not In (select B from テーブルA where テーブルA.C=テーブルB.C and テーブルA.D=テーブルB.D)));

popoibbb
質問者

お礼

逆の発想が必要だったんですね。 もっといろいろ試してみようと思います。 大変参考になりました。ありがとうございました。

関連するQ&A