jam*_*and 9 mysql database union
好吧,我的头疼了......!
这个美丽的MySQL查询:
(SELECT mtwitterfollowers AS twitfollow FROM `media` WHERE media.id=1)
UNION
(SELECT SUM(twitterfollowers) AS twitfollow FROM people LEFT JOIN peoplejoin ON peoplejoin.people_id = people.id LEFT JOIN positions ON position_id = positions.id WHERE peoplejoin.media_id = 1)
UNION
(SELECT SUM(twitterfollowers) AS twitfollow FROM people LEFT JOIN peoplejoin ON peoplejoin.people_id = people.id LEFT JOIN networkjoin ON networkjoin.network_id = peoplejoin.network_id LEFT JOIN positions ON position_id = positions.id WHERE networkjoin.media_id = 1)
Run Code Online (Sandbox Code Playgroud)
...返回三行漂亮的数字.
理想情况下,我希望此查询返回所有三个"twitfollow"结果,SUMmed在一起.
但是,对它们进行舍入会给我一个错误,即"每个派生表都必须有自己的别名",而且我对如何解决这个问题感到有些困惑.
(当然,我可以在PHP中总结结果;但我假设使用MySQL服务器更快地完成此操作.我会是对的吗?)
Dan*_*man 28
将整个查询用作FROM另一个查询的子句:
SELECT SUM(twitfollow) FROM (
(SELECT mtwitterfollowers AS twitfollow FROM `media` WHERE media.id=1)
UNION ALL
(SELECT SUM(twitterfollowers) AS twitfollow FROM people LEFT JOIN peoplejoin ON peoplejoin.people_id = people.id LEFT JOIN positions ON position_id = positions.id WHERE peoplejoin.media_id = 1)
UNION ALL
(SELECT SUM(twitterfollowers) AS twitfollow FROM people LEFT JOIN peoplejoin ON peoplejoin.people_id = people.id LEFT JOIN networkjoin ON networkjoin.network_id = peoplejoin.network_id LEFT JOIN positions ON position_id = positions.id WHERE networkjoin.media_id = 1)
) t1
Run Code Online (Sandbox Code Playgroud)
我也改变了你UNION,UNION ALL因为你可能不想删除行只是因为一个表的总和等于另一个表的总和.
| 归档时间: |
|
| 查看次数: |
14892 次 |
| 最近记录: |