在此Query中:
SELECT u.`id`, nc.`con` FROM `users` u
LEFT JOIN (
SELECT n.`uid`, GROUP_CONCAT(DISTINCT c.`content`) AS `con`
FROM `names` n
INNER JOIN `contents` c ON n.`uid` = c.`aid`
GROUP BY n.`uid`
) nc ON nc.`uid` = u.`id`
WHERE u.`age` = 15
我希望SELECT DISTINCT c.content
值有效,
我根本不想使用DISTINCT
,如果可能的话,想要使用GROUP BY
,因为使用DISTINCT
就像隐藏问题一样,
现在我已经提出了这个查询,但SELECT DISTINCT
中的GROUP_CONCAT
甚至没有ROW
个。
我想要的是在不使用DISTINCT
的情况下获得结果:
con: A, B
我得到的结果是:
con: A,B,B,A,A,B
如果有更好的方法,我可以打开它。
答案 0 :(得分:1)
您可以在子查询上GROUP BY
,然后group_concat
字段。
你可以尝试一下。
SELECT u.`id`, group_concat(nc.`con`)
FROM `users` u
LEFT JOIN (
SELECT n.`uid`, c.`content` AS `con`
FROM `names` n
INNER JOIN `contents` c ON n.`uid` = c.`aid`
GROUP BY n.`uid`,c.`content`
) nc ON nc.`uid` = u.`id`
WHERE u.`age` = 15