gpt4 book ai didi

mysql - 获取其他用户给予的用户感谢计数

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

我正在尝试构建论坛,但我需要有关构建 MySQL 查询的帮助。所以我的问题 - 应该构建什么 MySQL 查询来获取其他用户给出的用户感谢计数?

   f_posts (table)   Columns:   - id   - user_id (post author)   f_thanks (table)   Columns:   - user_id (who give thanks)   - post_id

I tried to build query with FlySpeed SQL query builder and it looks:

SELECT p.id, p.user_id, k.id, k.post_id
FROM f_thanks k
LEFT JOIN f_posts p ON p.id = k.post_id
WHERE p.user_id = 15

Result (5 行)但这是不正确的,因为我有超过 5 个感谢(应该至少 10 个...)

SELECT count(*) FROM f_thanks WHERE user_id = 15

结果是 4 行,这是正确的,因为我给了其他用户 4 个感谢。

(我已经翻译了它们:kiituused = 谢谢;postituused = posts;爱沙尼亚语-英语)

但我需要获取其他用户给出的用户感谢计数。

最佳答案

您正在使用左连接。然后,由于 左连接 生成的 NULL 值,您的 where 子句会将其转换为 内连接 .

解决方案是将条件移至 on 子句:

SELECT p.id, p.user_id, k.id, k.post_id
FROM f_thanks k LEFT JOIN
f_posts p
ON p.id = k.post_id AND
p.user_id = 15;

使用左连接时,始终将第二个表的条件放入on子句中。

关于mysql - 获取其他用户给予的用户感谢计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31159713/

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