2016-05-14 101 views
0

当我尝试在mysql工作台中使用子查询运行select语句时,我遇到没有结果的OK响应(查询成功)。我确信代码是正常的,mysql也没有发现任何错误,但我不知道为什么我没有得到任何答案。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; 
+4

那么,你有没有检查存在匹配查询的记录?你可以展示他们吗? –

回答

1

看起来你是一个这样的查询产生的结果后:

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) 

有几个与原始查询的问题。 SELECT列表中的子查询最多可以返回一行,否则MySQL将引发错误。

+0

谢谢@ spencer7593很多,它工作完美,我学到了很多 –