2

我正在尝试加入两个具有相似 ID 的表,然后也得到两个字段的总和。让我解释:

测试表: id | 发布 | 描述 | 日期

likes_dislikes 表: id | 歌曲ID | 用户ip | 喜欢 | 不喜欢

在测试“测试表”中,“id”与 likes_dislikes 的“song_id”匹配,所以我尝试了 LEFT JOIN,因为并非每个帖子在 likes_dislikes 表中都有一个 id,但我得到了重复的结果。

SELECT *
FROM
  test
  LEFT JOIN likes_dislikes ON test.song_id = likes_dislikes.page_id
GROUP BY test.song_id
ORDER BY test.id DESC LIMIT $start, $limit

如何防止重复的内容,以及在我运行 while 循环时获取与每个帖子相关联的总喜欢/不喜欢?

4

1 回答 1

1

我假设您正在寻找这样的东西:

SELECT
    T.`id`,
    T.`post`,
    T.`desc`,
    T.`Date`,
    COUNT(L.`like`) as `LikeCount`,
    COUNT(L.`dislike`) as `DislikeCount`
FROM `test` T
    LEFT JOIN `likes_dislikes` L
       ON T.`Id` = L.`song_id`
GROUP BY T.`Id`, T.`post`, T.`desc`, T.`Date`
ORDER BY T.`id` DESC;
于 2013-02-17T22:29:42.777 回答