gpt4 book ai didi

mysql - 使用 group_concat 的查询只返回一行

转载 作者:IT王子 更新时间:2023-10-29 00:30:02 25 4
gpt4 key购买 nike

这是一个查询,应该获取用户的信息、他们的项目信息,以及与该项目关联的所有图像路径的 group_concat。除此之外,我只从用户关注的人那里获得提到的信息。

然而,这只返回一行。

SELECT users.first_name, users.last_name, users.user_id, projects.project_id, projects.project_name, projects.project_time, group_concat(images.image_path)
FROM users, projects, images
WHERE users.user_id = projects.user_id
AND users.user_id IN (SELECT follow_user_2 FROM following WHERE follow_user_1 = 1)
ORDER BY projects.project_id DESC

比较: 以下查询 WORKS 在循环中提供所有用户信息和与该用户相关的项目信息。

SELECT users.first_name, users.last_name, users.user_id, projects.project_id, projects.project_name, projects.project_time 
FROM users, projects
WHERE users.user_id = projects.user_id
AND users.user_id IN (SELECT follow_user_2 FROM following WHERE follow_user_1 = 1)
ORDER BY projects.project_id DESC

当我尝试使用 group_concat 时,它只会返回 一个 行,我不明白为什么。

有人可以帮帮我吗?谢谢你。如果我的问题不够清楚,我会详细说明。

如果这有帮助,这里有一个 SQL FIDDLE。 http://www.sqlfiddle.com/#!2/867f6/2我不得不大大缩短我的架构。尝试以上两个查询以查看问题。

最佳答案

When I try to use group_concat it just returns me one row and I do not understand why.

因为您没有在查询中使用 GROUP BY 子句。当使用像 GROUP_CONCAT 这样的聚合函数时,您需要告诉数据库您希望合并数据的列。

目前您的查询正在对所有记录进行分组并在输出中给出 1 条记录。

如果您在查询中添加 GROUP BY users.userid,则记录将按唯一用户 ID 分组。我更新了你的 fiddle ,它现在提供了 2 条记录:http://www.sqlfiddle.com/#!2/867f6/18

请注意:在标准 SQL 查询中,GROUP BY 子句中列出的列应与 SELECT 子句中的列匹配(聚合函数除外)。

关于mysql - 使用 group_concat 的查询只返回一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22190200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com