2017-08-25 152 views
-3

我有两个表,一个是'帮派'列表,一个是'gang_members'列表gang_members.gang_id指的是他们所在的gang.id,我知道如何计算在一个团伙的所有成员,但我需要加入以下查询到一个:SQL连接计数和选择查询

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

enter image description here

我认为这是可能的,我可以做一个循环,而它的经历的帮派,但这将是低效的

+2

目前尚不清楚你想要得到什么。请提供一些样本结果数据。 –

+0

认为这很清楚,我的不好。我需要它来计算我从第一个查询中得到的所有帮派成员的数量 – bloodless2010

+3

JOINing和AGGREGATING是非常基本的SQL概念。你应该对这些做一些教程。 –

回答

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

可能是这样的

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