2

同様のIDを持つ2つのテーブルを結合してから、2つのフィールドの合計も取得しようとしています。説明させてください:

テストテーブル: id | 投稿| 説明| 日にち

like_dislikesテーブル: id | song_id | user_ip | のように| 嫌い

テスト「テストテーブル」では、「id」はlikes_dislikes「song_id」のIDと一致するため、すべての投稿にlikes_dislikesテーブルのIDが含まれるわけではないため、LEFT JOINを試しましたが、結果が重複しています。

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 に答える