我有两个表,一个是'帮派'列表,一个是'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>
我认为这是可能的,我可以在一个循环中进行,而它正在通过帮派,但这将是低效的
答案 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)