私は次のテーブルを持っています:
ユーザー、ビート、フロー、Beat_Likes_Dislikes、Flow_Likes_Dislikes。これが関係です。
ユーザーUserIDは、BeatsとFLowのUserID外部キーの両方と関係がある主キーです。Beats BeatIDは、Beats_Likes_DislikesBeatIDと関係があります。フローとそのlike_dislikeテーブルについても同じです。ビートとフローの「いいね」を「いいね」として、両方の表の「嫌い」を「嫌い」として合計する必要があります。私は次のものを持っています:
SELECT
ISNULL(SUM(Beats_Likes_Dislikes.[Like]) , 0) AS Likes,
-- + ISNULL(SUM(Flows_Likes_Dislikes.[Like]), 0) AS Likes,
ISNULL(SUM(Beats_Likes_Dislikes.Dislike), 0) AS DisLikes
-- + ISNULL(SUM(Flows_Likes_Dislikes.DisLike), 0) AS DisLikes
From Users
INNER JOIN Beats
ON Users.UserID = Beats.UserID
INNER JOIN Beats_Likes_Dislikes ON Beats.BeatID= Beats_Likes_Dislikes.BeatID
--INNER JOIN Flows ON Users.UserID = Flows.UserID
--INNER JOIN Flows_Likes_Dislikes ON Flows.FlowID=Flows_Likes_Dislikes.FlowID
Where Users.UserID = '110'
これは、ビートの好き嫌いの合計(別々の行)を返すのに最適です。フローテーブルから同じデータを取得する必要があります。数字が足し合わなかったので、フローテーブルの部分をコメントアウトしたことがわかります。私はここで何が間違っているのですか?
ありがとう。