2012-01-12 7 views
2

SQLクエリをループするのは良いことではないので、これら2つのクエリを1つに変更したいと思います。sqlが2つのクエリとJOINを結合する

JOINではあまりにも大きすぎるわけではありませんが、私はこれらの2つをどのようにマージするかを理解するのに苦労しています。そこにはDISTINCTがあります。

$sql_result2 = mysql_query("SELECT DISTINCT gang FROM turfs WHERE city='$city'", $db); 
while ($rs2 = mysql_fetch_array($sql_result2)) { 

    $sql_result3 = mysql_query("SELECT (SELECT COUNT(*) FROM turfs WHERE city='$city' AND gang=g.id) as count, g.id, g.name, g.color FROM gangs g WHERE g.id='$rs2[gang]'", $db); 
    $rs3 = mysql_fetch_array($sql_result3); 

お勧めはありますか?

+1

** WARNING **あなたのコードは、私が知らなかった ' '$のcity''このクエリ –

+0

の影響を受けやすいですそれは私の一般的な習慣です。ありがとうございます。 – user1022585

+0

前mysql_escapedされたSQLインジェクション攻撃 –

答えて

2

ようなもので参加し、グループ:

select count(*) as count, G.ID, G.NAME, G.COLOR 
from  GANGS G join TURFS T on T.GANG = G.ID 
where CITY = '$city' 
group by G.ID, G.NAME, G.COLOR 
+0

よく働く – user1022585

関連する問題