在这个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
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