基本上,我正在尝试以下方法:
SELECT m.col1, SUM(SELECT col5 FROM table WHERE col2 = m.col1) FROM table AS m
这好像不行,有办法吗?
41zrol4v1#
你为什么不这样做:
SELECT m.col1, (SELECT SUM(col5) FROM table WHERE col2 = m.col1) FROM table AS m
bihw5rsg2#
是-使用连接
SELECT m.col1, SUM(j.col5) FROM table AS m JOIN table AS j ON j.col2 = m.col1 GROUP BY m.col1
owfi6suc3#
Sum在第二个select中使用,我们想对列求和。如果col2列存在于表m中,那么它可能是不明确的列。
SELECT m.col1, (SELECT SUM(t.col5) FROM table AS t WHERE t.col2 = m.col1) AS sumcol FROM table AS m
tquggr8v4#
另一种解决方案是将子查询括在附加的括号中
SELECT m.col1, SUM((SELECT col5 FROM table WHERE col2 = m.col1)) FROM table AS m
在我的情况下,这解决了它。MySQL文档(13.2.15 Subqueries)也指出:子查询必须始终出现在括号内。
4条答案
按热度按时间41zrol4v1#
你为什么不这样做:
bihw5rsg2#
是-使用连接
owfi6suc3#
Sum在第二个select中使用,我们想对列求和。如果col2列存在于表m中,那么它可能是不明确的列。
tquggr8v4#
另一种解决方案是将子查询括在附加的括号中
在我的情况下,这解决了它。
MySQL文档(13.2.15 Subqueries)也指出:
子查询必须始终出现在括号内。