符合下表:更新查詢不更新幾行
"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;
我可以看到在結果中的所有行,但頂部的兩個不更新。
我錯了我的SQL?我如何設置這個權利?另外,你是否看到我正在使用的SQL中的任何問題?
有您測試上面的查詢,,,我覺得有在內部查詢錯誤。並請提供有關您的問題的好信息 – Anvesh
是的,我測試過了。它工作正常,除了最後兩行。 – jmenezes
@jmenezes請注意,有關遞歸的選擇包括構造一個sproc,處理應用程序級別的邏輯,或從邊界列表/鄰接模型切換到例如嵌套集合。< - 在這種情況下,我認爲這將是我的偏好。請記住,內容和層次模型可以(也可能應該)分解成單獨的實體。 – Strawberry