我有兩個表,一個包含數十萬行的「數據」表和一個包含數百行的「設置」表。我需要更新設置表中的兩個值,基於數據表中一列的總和大於設置表中的另一列,其中設置表的'id'與數據表的'offerid'匹配。根據另一個表中的列的總和在一個表中設置兩個值
我一直在巡航谷歌看着許多可能的解決方案,但我似乎無法彎曲任何他們滿足我的需求。任何時候我開始和Joins一起工作,我不可避免地會被絆倒。
沒有工作我的最新嘗試,是:
UPDATE settings a, data b
SET a.hidden=1, a.weight=0
WHERE a.id = b.offerid
AND sum(b.views) > a.target
我很喜歡這種香味的方法,因爲我認爲這實際上是對我有意義,但我得到的是"Error code 1111: Invalid us of group function"
。也許這裏有人能指出我正確的方向。
謝謝你,但我只是得到'where'的語法錯誤。也應該是'sum(b.views)AS sumviews'?看起來像一個AS不見了我。 – 2014-11-06 00:47:19
AS是可選的。你可以添加它,如果你想。它實際上對AS更具可讀性。我可以知道你有什麼錯誤嗎? – TheProvost 2014-11-06 00:53:48
哦,現在。得到了集合,並在那裏互換。更新了我的答案,我打賭它已經OK了。不要忘了upvote和標記爲答案,如果這有助於你:) – TheProvost 2014-11-06 00:59:15