【发布时间】:2013-12-08 12:58:55
【问题描述】:
我正在尝试通过组合两个查询来更新表,如下所示
UPDATE result, games_played
SET result.precentage_correct =
(
SELECT user_id, 100*SUM(n_win)/SUM(n_total) AS pct_win FROM
(SELECT user_id, COUNT(user_id) AS n_win,
NULL AS n_total
FROM games_played
WHERE winner != 'n'
AND game = 1
GROUP BY user_id
UNION SELECT user_id, NULL AS n_win,
COUNT(user_id) AS n_total
FROM games_played
WHERE game = 1
GROUP BY user_id
) AS counts
GROUP BY counts.user_id
)
WHERE result.user_id = games_played.user_id
但是我得到了错误
Operand should contain 1 column(s)
有谁知道我做错了什么...我可以选择结果作为新表
【问题讨论】:
-
不要选择user_id,只选择pct_win。错误消息意味着您尝试使用 2 个值/列更新一列(percentage_correct)
-
谢谢,我现在明白为什么会出现此错误,但是我尝试了此操作,但出现错误子查询返回超过 1 行
-
检查我对那个错误的回答