0

我有 3 张桌子:

用户订阅

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 来获得我需要的计数。再次感谢!

4

1 回答 1

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 评论少;-)

于 2013-11-08T13:25:45.823 回答