我有 2 张 table :
表 1(订阅)
ID - NAME - COURSEID - STATUS
1 - JOHN - 1 - 0
2 - MIKE - 1 - 0
3 - JANE - 2 - 0
4 - PAUL - 1 - 1
表 2(类(class)描述)
COURSEID - COURSE - NAME - UNIT
1 - EXCEL - BASIC - XYZ Street
2 - WORD - MASTER - ABC Street
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
但我只获得了订阅的类(class)。
出了什么问题?
最佳答案
此查询将执行您想要的操作。它使用条件聚合(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
关于mysql - SQL - 如何计算表1中的订阅数量并连接表2中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52142116/