【问题标题】:Value is getting repeated [duplicate]价值正在重复[重复]
【发布时间】:2020-01-26 03:51:45
【问题描述】:

我的 SQL 如下所示:

SELECT GROUP_CONCAT(technologies.tech) AS technologies, personal.city, GROUP_CONCAT(languages.language) AS languages 
FROM personal 
INNER JOIN technologies ON technologies.uid = personal.uid 
INNER JOIN languages ON languages.uid = personal.uid 
WHERE personal.uid = 88

结果:

| technologies        |  city          |  languages               |
|---------------------|:--------------:|-------------------------:|
| PHP,HTML,JavaScript |  Chicago       |  English,English,English |

如您所见,English 不断重复。如何让它只出现一次?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您有一个聚合查询,在 SELECT 中包含未聚合的列,但没有 GROUP BY。我会推荐:

    SELECT GROUP_CONCAT(DISTINCTt.tech) AS technologies, p.city, 
           GROUP_CONCAT(DISTINCT l.language) AS languages 
    FROM personal p INNER JOIN
         technologies t
         ON t.uid = p.uid INNER JOIN
         languages l
         ON l.uid = p.uid 
    WHERE p.uid = 88
    GROUP BY p.city;
    

    注意事项:

    • GROUP_CONCAT(DISTINCT)回答你的问题
    • 表别名使查询更易于阅读。
    • p.citySELECT 中是裸露的。最新版本的 MySQL 会抱怨;所以我添加了GROUP BY

    【讨论】:

    • 完美,非常感谢!
    猜你喜欢
    • 2021-12-03
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 2012-09-19
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多