• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL)

SQLテーブル仕様における重複データの取得と省略方法

このQ&Aのポイント
  • SQLテーブル仕様において、重複したメールアドレスを含むデータを全て取得する方法について悩んでいます。ただし、携帯の重複したデータは省きたいです。
  • サブクエリを使用して、重複データの取得と省略を試みていますが、うまくいきません。
  • シーケンシャルナンバーを利用してデータの重複を防ぐことはできますが、他に良い方法はあるでしょうか?

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

  • ベストアンサー
  • geso775
  • ベストアンサー率29% (15/51)
回答No.2

#1です。 >携帯の重複したデータを省きたいです。 >これは重複していないデータは要らないの間違いでしょうか? どうやら仮定の解釈を間違えたようですね(汗) 前述のSQLは重複したもののみ抽出するモノです。 逆を行いたいのであれば、 having count = 1 にして下さい。

aiurai54
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • geso775
  • ベストアンサー率29% (15/51)
回答No.1

#間違ってたらごめんなさい。 >mailアドレスには重複したデータが含まれる場合に >全てのデータを取得したいのですが、携帯の重複したデータを省きたいです。 取得したいフィールドはこちらで num | id | mail | event | date >mailアドレスには重複したデータが含まれる場合に >全てのデータを取得したい のですよね。 >携帯の重複したデータを省きたいです。 これは重複していないデータは要らないの間違いでしょうか? 上記と仮定しますと select * from mail_table where mail in ( select mail from mail_table group by mail having count > 1) でいけるかと思います。 in句を使用しています、テーブルが大きい場合には向きませんので exist句に直してください^^;

aiurai54
質問者

補足

早速の回答ありがとうございます。 上記のクエリーですと、やはり重複したデータが取得されるのですが、、、 emailはサブクエリーで重複したものを排除しても、クエリー側で検索されてしまいます。 同じemaiはテーブルに複数存在しています。 ですので、クエリー側でも値を出すときも重複したものは排除したいです。 distinctを使えばいいと思ったのですが、これですと、取得したいカラムの値が違う場合は取得できないですよね・・・。 私の説明がよくなかったので、すみません。