次の表を使用します。
"id" "type" "parent" "country" "votes" "perCent"
"1" "1" "0" "US" "0" "0"//Appears as 0, should be 12
"2" "2" "1" "US" "0" "0"//Appears as 0, should be 8
"3" "3" "2" "US" "4" "0"
"7" "3" "2" "US" "4" "0"
"19" "3" "1" "US" "4" "0"
"4183" "10" "3" "US" "2" "0"
"4184" "10" "3" "US" "2" "0"
"4185" "10" "7" "US" "2" "0"
"4186" "10" "7" "US" "2" "0"
"4187" "10" "19" "US" "2" "0"
"4188" "10" "19" "US" "2" "0"
次のクエリを実行して合計を更新すると、行 ID 1 と行 ID 2 が 0 と表示されるのはなぜですか?
UPDATE likesd a
INNER JOIN
(
SELECT parent, country, SUM(votes) totalVotes
FROM likesd
GROUP BY parent
) b ON a.id = b.parent and a.country = b.country
SET a.votes = b.totalVotes; select * from likesd;
私がする時:
SELECT parent, country, SUM(votes) totalVotes
FROM likesd
GROUP BY parent;
結果にすべての行が表示されますが、上位 2 行は更新されません。
私は自分のSQLに問題がありますか?これを正しく設定するにはどうすればよいですか? また、私が使用しているSQLに問題はありますか?