我有3张桌子:
user_subscriptions
ID | SUB_ID | TYPE | Type 1 = scripts | Type 2 = packages
1 | 1 | 1 |
2 | 2 | 1 |
3 | 3 | 1 |
4 | 4 | 1 |
5 | 1 | 2 |
6 | 2 | 2 |
7 | 3 | 2 |
8 | 4 | 2 |
9 | 5 | 1 |
10 | 6 | 2 |
11 | 7 | 1 |
12 | 8 | 1 |
13 | 9 | 2 |
脚本
ID | AUTHOR_ID |
1 | 58 |
2 | 58 |
3 | 58 |
4 | 58 |
5 | 52 |
6 | 53 |
7 | 58 |
8 | 55 |
9 | 58 |
10 | 56 |
包
ID | AUTHOR_ID |
1 | 58 |
2 | 58 |
3 | 58 |
4 | 58 |
5 | 56 |
6 | 57 |
7 | 58 |
8 | 58 |
9 | 56 |
10 | 58 |
在'user_subscriptions'表中,'SUB_ID'列对应于脚本ID或包ID,具体取决于为该订阅设置的类型。
我的目标是查询脚本订阅的总数&由特定作者创建的包。作者58创建了6个脚本和7个包(共13个),但只有9个用户订阅与author_id 58相关。
我在编写一个返回与author_id 58有关的user_subscriptions的查询时遇到问题。
非常感谢任何和所有的帮助。我正在使用PHP进行此查询,并且可能会使用mysqli_num_rows来获取我需要的计数。再次感谢!
答案 0 :(得分:0)
SELECT author_id
, COUNT(*) total
FROM
( SELECT id, author_id FROM scripts
UNION ALL
SELECT id, author_id FROM packages
) x
GROUP
BY author_id;
请注意,此解决方案中的字数少于上面的webnoobs评论; - )