Tif*_*owe 12 mysql sql database
这是一个查询,它应该获取用户的信息,项目的信息以及与此项目相关联的所有图像路径的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
Run Code Online (Sandbox Code Playgroud)
比较:以下查询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
Run Code Online (Sandbox Code Playgroud)
当我尝试使用GROUP_CONCAT它只是返回我一个行,我不明白为什么.
有谁可以帮助我吗?谢谢.如果我的问题不够明确,我会详细说明.
如果这有帮助,这是一个SQL FIDDLE. http://www.sqlfiddle.com/#!2/867f6/2 我不得不缩短我的架构.尝试上面的两个查询来查看问题.
Azi*_*ikh 34
当我尝试使用group_concat时,它只返回我一行,我不明白为什么.
因为您没有GROUP BY在查询中使用该子句.使用聚合函数时,GROUP_CONCAT您需要告诉数据库有关您希望组合数据的列.
目前,您的查询正在对所有记录进行分组,并在输出中提供1条记录.
如果您添加GROUP BY users.userid查询,则记录将按唯一的用户ID进行分组.我更新了你的小提琴,它现在给出了2条记录:http://www.sqlfiddle.com/#!2/ 867f6/18
请注意:在标准SQL查询中,GROUP BY子句中列出的列应与SELECT子句中的列匹配(聚合函数除外).
只需group by在your_query中使用子句
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)
group by users.first_name
ORDER BY projects.project_id DESC;
Run Code Online (Sandbox Code Playgroud)