2017-02-07 5 views
1

に私はテーブルmovies内の重複path値のMIN(id)を取得するには、次のクエリを作りました同じパスの別の映画を持っているのですが、なぜなら、MIN()GROUP BY path問題は、mysqlのクエリ

私はグループにパスをしたいが、私はMIN(id)

を行うため、これは予想される結果である他のパスをエクスクルードいけない:Imが間違って何を

id  | user_id |  path | 
­­­­­­­­­­­­------------------------------------ 
2   | 1234 |  XXXX | 
8   | 4231 |  BBBB | 
5   | 3421 |  BBBB | 

@Tim Biegeleisen

問題は、私は同じUSER_IDと重複パスを取得することクエリにある:

id  | user_id |  path | 
­­­­­­­­­­­­------------------------------------ 
    3523  12287   asd 
    3524  12287   asd 
    3525  12287   asd 

Iがそれぞれグループ化されたパス分間IDを取得する必要があります。

+1

確かに、temp.importerをp.importerと同じにしたいと思います。それ以外にも、http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- sql-query – Strawberry

+0

DISTINCT(user_id)? – user3741598

+0

できるだけサンプルデータを表示してください。 –

答えて

1

は、私が何をやりたいことGROUP BYuser_idpathにだと思うし、その後、与えられたpathに関連する複数のユーザがなければならない最小の映画のIDを持つレコードを選択してください。その場合は、次のクエリが機能するはずです。

SELECT m1.id, m1.user_id, m1.path 
FROM movies m1 
INNER JOIN 
(
    SELECT user_id, path, MIN(id) AS min_id 
    FROM movies 
    WHERE importer LIKE '%AS%' 
    GROUP BY user_id, path 
) m2 
    ON m1.path = m2.path AND 
     m1.user_id = m2.user_id AND 
     m1.id  = m2.min_id 
+1

@devtreat私は自分の答えを更新しました。私はあなたが 'GROUP BY'ユーザIDとパスをしたいと思うし、最小IDでレコードを保持します。 –

+0

このクエリは私が望むものを作った。どうもありがとうございました! – Coluh