当我尝试在mysql工作台中运行带有子查询的select语句时,遇到没有结果的OK响应(查询成功)。我确信代码还可以,并且mysql也没有发现任何错误,但是我不知道为什么我没有得到任何答案。
这是代码
SELECT date(created_at),
(SELECT
SUM(amount) AS topup_amount
FROM
wallet_transaction
WHERE
type = 'topup'
GROUP BY DATE(created_at)),
(SELECT
SUM(amount) AS admin_add_amount
FROM
wallet_transaction
WHERE
type = 'admin_add'
GROUP BY DATE(created_at))
FROM
wallet_transaction;
Run Code Online (Sandbox Code Playgroud)
看起来您正在寻找这样的查询产生的结果:
SELECT DATE(wt.created_at) AS dt_created
, IFNULL(SUM(IF(wt.type = 'topup' , wt.amount, 0)),0) AS topup_amount
, IFNULL(SUM(IF(wt.type = 'admin_add', wt.amount, 0)),0) AS admin_add_amount
FROM wallet_transaction wt
GROUP BY DATE(wt.created_at)
Run Code Online (Sandbox Code Playgroud)
原始查询有几个问题。SELECT 列表中的子查询最多只能返回一行,否则 MySQL 会抛出错误。
| 归档时间: |
|
| 查看次数: |
6841 次 |
| 最近记录: |