在此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
高效值(value)观,
我不想使用DISTINCT
完全,如果可能的话想使用 GROUP BY
,自从使用DISTINCT
就像隐藏问题一样,
现在我已经做了这个查询,但它甚至没有SELECT DISTINCT
在GROUP_CONCAT
有很多ROW
s。
我想要的是不使用 DISTINCT
得到的如果可能的话结果:
con: A, B
我得到的是结果:
con: A,B,B,A,A,B
如果有更好的方法来做到这一点,我愿意接受。
最佳答案
您可以对子查询进行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
关于mysql - 无法在 GROUP_CONCAT DERIVED 查询中选择 DISTINCT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49059257/