2017-08-25 16 views
-3

私は2つのテーブルを持っています.1つは 'gangs'のリストで、もう1つは 'gang_members'のリストです。gang_members.gang_idはgang.idを参照しています。すべて1人のギャング内のメンバーが、私は一つに次のクエリに参加する必要があります:それはギャングによって起こっている間SQL結合カウントとselectクエリ

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

ジョインと集約は非常に基本的な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)