MySQL 子查询出错
Posted
技术标签:
【中文标题】MySQL 子查询出错【英文标题】:Error with MySQL Subquery 【发布时间】:2015-09-28 14:01:46 【问题描述】:我有一个 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 服务器版本相对应的手册以获取正确的语法使用 near 'FROM orders WHERE statuses = 1) As Count, (SUM(cards_required) 来自第 3 行的订单
【问题讨论】:
没有看到任何错误信息 这就是我的想法@amdixon #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 'FROMorders
WHERE statuses = 1) As Count, (SUM(cards_required) FROM orders
' 附近使用正确的语法
好吧,你有多个 where 子句和 from 子句 - 为什么?
【参考方案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
【讨论】:
哇,好用!我通常在 SQL 中工作似乎有比我想象的更多的差异!以上是关于MySQL 子查询出错的主要内容,如果未能解决你的问题,请参考以下文章