我如何计算另一张桌子上的所有喜欢?
How can i count all likes from another tabel?
我已经做到了这一点,即我的 SQL 会在 tbl_posts 中至少有一个赞的情况下回复所有帖子。但是现在我想知道如何让它工作,所以它 returns 所有帖子,即使他们没有喜欢。点赞通过外键存储在 tbl_posts_likes 中(post_id、user_id 作为 tbl_posts_likes 中的列)。我的 SQL 目前看起来像这样:
SELECT tbl_posts.*,tbl_users.name,COUNT(tbl_posts_likes.user_id) AS likes
FROM tbl_posts
INNER JOIN tbl_users ON tbl_posts.user_id = tbl_users.id
LEFT JOIN (SELECT * FROM tbl_friends fr WHERE fr.friend_id = '1') AS fr ON tbl_posts.user_id = fr.user_id
RIGHT JOIN tbl_posts_likes ON tbl_posts_likes.post_id = tbl_posts.id
WHERE tbl_posts.user_id = '1' OR tbl_posts.user_id = fr.user_id
ORDER BY tbl_posts.created_at DESC
如果你能帮助我,那就太好了,因为我从几天前就开始寻找工作 SQL 设置:/
来自德国的问候!
您需要按 tbl_posts.id 分组才能获得每个 post 的结果。
如果您不这样做,所有结果将合并为一行。
a fiddle 每个 post 的结果,如果没有喜欢的结果是 0.
SELECT tbl_posts.*,tbl_users.name,COUNT(tbl_posts_likes.user_id) AS likes
FROM tbl_posts
INNER JOIN tbl_users ON tbl_posts.user_id = tbl_users.id
LEFT JOIN tbl_posts_likes
ON tbl_posts.id = tbl_posts_likes.post_id
group by tbl_posts.id
找到解决此类问题的好方法:
通过首先获取仅包含点赞数的 post 来简化问题。稍后添加其他连接,但首先关注获得最基本的结果。
我已经做到了这一点,即我的 SQL 会在 tbl_posts 中至少有一个赞的情况下回复所有帖子。但是现在我想知道如何让它工作,所以它 returns 所有帖子,即使他们没有喜欢。点赞通过外键存储在 tbl_posts_likes 中(post_id、user_id 作为 tbl_posts_likes 中的列)。我的 SQL 目前看起来像这样:
SELECT tbl_posts.*,tbl_users.name,COUNT(tbl_posts_likes.user_id) AS likes
FROM tbl_posts
INNER JOIN tbl_users ON tbl_posts.user_id = tbl_users.id
LEFT JOIN (SELECT * FROM tbl_friends fr WHERE fr.friend_id = '1') AS fr ON tbl_posts.user_id = fr.user_id
RIGHT JOIN tbl_posts_likes ON tbl_posts_likes.post_id = tbl_posts.id
WHERE tbl_posts.user_id = '1' OR tbl_posts.user_id = fr.user_id
ORDER BY tbl_posts.created_at DESC
如果你能帮助我,那就太好了,因为我从几天前就开始寻找工作 SQL 设置:/
来自德国的问候!
您需要按 tbl_posts.id 分组才能获得每个 post 的结果。 如果您不这样做,所有结果将合并为一行。
a fiddle 每个 post 的结果,如果没有喜欢的结果是 0.
SELECT tbl_posts.*,tbl_users.name,COUNT(tbl_posts_likes.user_id) AS likes
FROM tbl_posts
INNER JOIN tbl_users ON tbl_posts.user_id = tbl_users.id
LEFT JOIN tbl_posts_likes
ON tbl_posts.id = tbl_posts_likes.post_id
group by tbl_posts.id
找到解决此类问题的好方法:
通过首先获取仅包含点赞数的 post 来简化问题。稍后添加其他连接,但首先关注获得最基本的结果。