0

このクエリを実行すると、2 つの携帯電話番号と 1 つのカテゴリが取得されるはずですが、代わりに 2 つのカテゴリが取得されます。何が間違っていますか? 私はそれが私が物事に参加している方法に関係していると思いますか?

ユーザー、複数の imei を持つことができます、categoryjoin はユーザーを複数のカテゴリにリンクします

SELECT 
    u.*, 
    group_concat(i.mobilenumber) as mobilenumbers,
    group_concat(c.name) as categories 
FROM 
    users AS u 
INNER JOIN 
    categoryjoin AS cj 
ON 
    u.uid = cj.user_id 
INNER JOIN 
    categories AS c 
ON 
    cj.category_id = c.uid 
INNER JOIN 
    imei AS i 
ON
    u.uid = i.user_id
GROUP BY 
    u.uid

ご協力いただきありがとうございます。

4

1 に答える 1

2

ユーザーが 1 つのカテゴリに一致するが、imei の 2 つの行に一致する場合、そのカテゴリは結果セットで重複します。以下を使用して、group_concat から冗長な値を取り除くことができますDISTINCT

SELECT 
    u.*, 
    group_concat(distinct i.mobilenumber) as mobilenumbers,
    group_concat(distinct c.name) as categories 
于 2010-11-05T12:56:25.837 に答える