2015-09-28 36 views
1

我有一个MySQL查询产生一个视图,显示两列,这两列是子查询的,但由于某种原因,我收到错误。错误与MySQL子查询

SELECT 
(SUM(cards_required) FROM `orders` WHERE statuses = 1) As Count, 
(SUM(cards_required) FROM `orders` WHERE statuses = 2) As Count 
FROM `orders` WHERE user_id = 1 

错误信息

#1064 - 你在你的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法手册使用 附近“FROM订单WHERE状态= 1)计数,(SUM(cards_required) 从接单”在第3行

+1

没有看到任何错误讯息 – amdixon

+0

这就是我想@amdixon –

+0

#1064 - 你在你的SQL语法错误;检查手册,它对应于您的MySQL服务器版本,以便在'FROM'命令附近使用正确的语法WHERE statuses = 1)作为计数, (SUM(cards_required)FROM'orders''line 3 –

回答

1

的语法你“再利用是不完全正确,您可以使用IF有条件总和:

SELECT 
SUM(IF(statuses = 1,cards_required,0)) As status_1, 
SUM(IF(statuses = 2,cards_required,0)) As status_2 
FROM `orders` WHERE user_id = 1 
+0

哇,工作!我通常在SQL中工作似乎有比我想象的更多的差异! –