2010-12-07 13 views
0

私は私のために少し複雑なMySQLのクエリを持っており、私はメモリのトンを食べることなくそれを書く方法を見つけることができません。 (それがならば、私は本当に気にしない)Distinct&Group SQLクエリ

は、私は次のテーブルがあります。

4BF1510 | 40.145.10.99 
510SD55 | 65.12.105.42 
984AZ6C | 72.98.45.76 
     | 10.15.78.10 
B1D56SX | 

   TABLE: users(id,ip) 
       ------------------------------------ 
       4BF1510 | 40.145.10.99 <-- SAME IP (A) 
SAME ID --> 510SD55 | 65.12.105.42 
SAME ID --> 510SD55 | 45.184.15.10 
       201505V | 40.145.10.99 <-- SAME IP (A) 
       984AZ6C | 72.98.45.76 
         | 10.15.78.10 <-- SAME IP (B) 
         | 10.15.78.10 <-- SAME IP (B) 
SAME ID --> B1D56SX | 
SAME ID --> B1D56SX | 

を私はとてもユニークIDやIPごとに1つのアイテムを、fetchs問い合わせをしたいです

最も重要なこと:

  • 複数のエントリが同じIPと同じIDを持っている場合 - >彼らは
  • 01をグループ化することがあります
  • 複数のエントリが同じIPが、異なるIDをお持ちの場合 - 複数のエントリが同じIDが異なるIPアドレスを持っている場合>彼らは
  • をグループ化することはないだろう - 複数のエントリが同じIPを持っている場合>彼らは
  • をグループ化することがあります複数のエントリが同じIDが、 IPフィールドを持っている場合>彼らは
  • をグループ化することがあります - - しかし IDフィールド>彼らはIDが持っている必要があることを意味

をグループ化することがあります信頼の第一優先順位sersは同じIPを使うかもしれません。

これを達成するための効果的な方法はありますか?

感謝の電話。

+0

でグループを忘れてしまったこのテーブルのキーは何ですか?私はIDと同一のIPを持たない2つの別個のエントリをどのように持つことができるのか、混乱しています。 – eykanal

+0

キーがありません@eykanal – Ryan

+0

あなたのスキーマを変更する必要があると思われます。おそらく、ipは主キーでリンクされた別のテーブルにあるはずです。 – rook

答えて

1

あなたがしたいことはgroup_contactを使って達成できます。 IDによるロググループからIPSとして

SELECT ID、GROUP_CONCAT(IP)

編集:

+0

あなたは地球上で最も素晴らしい人です、あなたは私のお尻の年を救った! – Ryan