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

如果用户匹配一个类别,但匹配 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 回答