我需要查询 1 个表以获取与第二个和第三个表中的值相关的总行数


I need to query 1 table to obtain the total number of rows pertaining to a value in a second and third table

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

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;

请注意,此解决方案中的单词比上面的网络菜鸟评论少;-)