我想嵌套两个sql命令第一个t依赖于前一个查询的结果

bvjxkvbb  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(200)

**我能分别从两张表中读出内容

对于第一个查询,我运行'selectdistinct' group_idwp_um_groups_members '
然后得到

Group ID
64
179
430

当我选择一个组并运行第二个查询时

SELECT COUNT( `user_id1` ) AS Member
FROM `wp_um_groups_members`
WHERE `group_id` = 179 AND
    status = 'approved' AND
    `user_id1` IN ( SELECT ID FROM `wp_users` WHERE ID = `user_id1` )

我明白了

Members
9

我试图使用表的结果作为第一个查询的输入,以得到下面所需的结果

**

Group ID Member 
64          0
179         9
430         3

vc6uscn9

vc6uscn91#

我想你想要一个 left join 和聚合:

SELECT ugm.group_id, 
       SUM(ugm.status = 'approved' AND ugm.id IS NOT NULL) AS num_members
FROM `wp_um_groups_members` ugm LEFT JOIN
     wp_users u
     ON ugm.user_id1 = u.id
GROUP BY ugm.group_id;

这使用mysql语法,但是可以很容易地转换为 case 或者 filter 如果您使用的是其他数据库。

相关问题