SQL连接计数和选择查询

时间:2017-08-25 13:28:50

标签: sql

我有两个表,一个是'帮派'列表,一个是'gang_members'列表,gang_members.gang_id指的是他们所在的gang.id,我知道如何统计一个帮派中的所有成员,但我需要将以下查询合并为一个:

SELECT * FROM gangs LIMIT 8
SELECT count(gang_id) FROM gangs_members WHERE gang_id = <GANG ID>

enter image description here

我认为这是可能的,我可以在一个循环中进行,而它正在通过帮派,但这将是低效的

2 个答案:

答案 0 :(得分:2)

SELECT A.*, B.RC
FROM gangs A
LEFT JOIN (SELECT gang_id, COUNT(*) AS RC FROM gangs_members GROUP BY gang_id) B ON A.gang_id=B.gang_id

答案 1 :(得分:1)

可能是这样的

SELECT count(gang_id) 
FROM gangs_members 
WHERE gang_id IN (SELECT gang_id FROM gangs LIMIT 8)