【问题标题】:Subquery returning wrong answer子查询返回错误答案
【发布时间】:2019-09-08 19:25:50
【问题描述】:

我有两张桌子,比如 1:-用户

id  name
1   vivek
2   raj
3   mohan
4   gagan
5   priya

2:-购买

id  typee        user_id
1   class        1
2   class        1
3   course       1
4   class        2
5   test_series  3
6   test_series  2 

我正在尝试运行

select p.id,(select count(purchasee.user_id) as tot
             from purchasee
             where purchasee.user_id=p.id
             and typee='class'
             or typee='course' ) as classcourse,(select count(purchasee.user_id) as tot
                                                 from purchasee
                                                 where purchasee.user_id=p.id 
                                                 and typee='test_series') as test 
from purchasee as p
GROUP by p.user_id

查询及其刺激我

id      Classcourse    test
1       3              0
4       1              0
5       0              1

预期的答案是

id      Classcourse    test
1       3              0
4       1              1
5       0              1

我想选择用户购买(课程或课程)或(test_series),如果是,则用户购买课程或课程,然后计算它,或者如果用户购买 test_series,然后计算行数

【问题讨论】:

  • 你能解释一下我们的逻辑吗?

标签: mysql subquery


【解决方案1】:

试试下面的sql

SELECT p.id,
     SUM( IF( typeee = 'class' || typeee = 'course', 1,0) ) as tot,
     SUM( IF (typeee = 'test_series', 1,0) ) as classcourse
FROM purchasee as p
GROUP by p.user_id

【讨论】:

    猜你喜欢
    • 2016-05-28
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 2018-10-03
    • 2014-12-04
    相关资源
    最近更新 更多