Mysql SQL-如何计算表1中的订阅数并连接表2中的数据
我有两张桌子: 表1(订阅) 表2(课程描述) 我需要这个: 结果表:Mysql SQL-如何计算表1中的订阅数并连接表2中的数据,mysql,sql,left-join,inner-join,Mysql,Sql,Left Join,Inner Join,我有两张桌子: 表1(订阅) 表2(课程描述) 我需要这个: 结果表: COURSEID - COURSE - NAME - UNIT - TOTAL SUBSCRIPTIONS WITH STATUS = 0 1 - EXCEL - BASIC - XYZ Street - 2 2 - WORD - MASTER - ABC Street - 1 3 - PPOINT - BASIC - MNO Street -
COURSEID - COURSE - NAME - UNIT - TOTAL SUBSCRIPTIONS WITH STATUS = 0
1 - EXCEL - BASIC - XYZ Street - 2
2 - WORD - MASTER - ABC Street - 1
3 - PPOINT - BASIC - MNO Street - 0
我尝试左加入:
SELECT TABLE2.COURSEID, TABLE2.COURSE, TABLE2.NAME, TABLE2.UNITY COUNT(*) TOTAL FROM TABLE1 LEFT JOIN TABLE2 ON TABLE1.ID = TABLE2.ID GROUP BY TABLE1.ID
但我只得到了订阅的课程
怎么了?此查询将执行您想要的操作。它使用条件聚合(一个
CASE
语句的SUM
)来确定状态为0的订阅数
SELECT c.COURSEID, c.COURSE, c.NAME, c.UNIT, SUM(CASE WHEN s.STATUS = 0 THEN 1 ELSE 0 END) AS Subs_with_0_status
FROM table2 c
LEFT JOIN table1 s ON s.COURSEID = c.COURSEID
GROUP BY c.COURSEID
输出:
COURSEID COURSE NAME UNIT Subs_with_0_status
1 EXCEL BASIC XYZ Street 2
2 WORD MASTER ABC Street 1
3 PPOINT BASIC MNO Street 0
此查询将执行您想要的操作。它使用条件聚合(一个
CASE
语句的SUM
)来确定状态为0的订阅数
SELECT c.COURSEID, c.COURSE, c.NAME, c.UNIT, SUM(CASE WHEN s.STATUS = 0 THEN 1 ELSE 0 END) AS Subs_with_0_status
FROM table2 c
LEFT JOIN table1 s ON s.COURSEID = c.COURSEID
GROUP BY c.COURSEID
输出:
COURSEID COURSE NAME UNIT Subs_with_0_status
1 EXCEL BASIC XYZ Street 2
2 WORD MASTER ABC Street 1
3 PPOINT BASIC MNO Street 0
你好,尼克!首先,谢谢你分享宝贵的时间和知识来帮助我。就这样!在这里测试,效果很好。我会在几分钟内投票并给你打分(需要再等5分钟):DHi@Nick!首先,谢谢你分享宝贵的时间和知识来帮助我。就这样!在这里测试,效果很好。我会在几分钟内投票并给你打分(需要再等5分钟):D