gpt4 book ai didi

sql - MYSQL一对多JOIN

转载 作者:行者123 更新时间:2023-11-29 06:24:27 24 4
gpt4 key购买 nike

我有这个查询,我需要在名为“likes”的表上包含另一个联接,其中up​​dates.id = likes.update_id。此连接将有 0 个或多个匹配项。

"SELECT * FROM users 
INNER JOIN updates ON users.remote_id=updates.owner_id
ORDER BY updates.status_time DESC LIMIT 50"

这可能相当简单,但我还没有找到此类查询的任何示例。

情况基本上是我正在显示一个项目列表。我对用户表进行联接以获取创建每个项目的用户。我还需要对“喜欢”表进行联接,以显示喜欢每个项目的 0 多个人。


编辑:我的解决方案

好的,这是使用 GROUP_CONCAT 成功加入和合并重复结果的结果(因为每次更新都有多个“喜欢”)。

"SELECT   users.*,updates.update_id,updates.content,updates.status_time,
GROUP_CONCAT(likes.liker SEPARATOR ',') AS liked_by
FROM updates
LEFT OUTER JOIN likes ON updates.update_id = likes.update_id
JOIN users ON users.remote_id = updates.owner_id
GROUP BY updates.update_id
ORDER BY updates.status_time DESC
LIMIT 200"

最佳答案

SELECT * FROM users 
LEFT OUTER JOIN updates ON users.remote_id=updates.owner_id
INNER JOIN likes ON <join condition here>
ORDER BY updates.time DESC LIMIT 50

这行得通吗?

如果没有,您能澄清一下您的问题到底是什么吗?您的查询不起作用吗?

关于sql - MYSQL一对多JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/741308/

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