2012-01-12 29 views
2

我知道循環SQL查詢並不是一個好主意,所以我想將這兩個查詢合併爲一個。sql將2個查詢與JOIN聯合起來

JOINs不是太好,我很努力地想法如何合併這兩個,它有那個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''是此查詢 – 2012-01-12 02:23:41

+0

我不知道的那是,但這是我的慣例。 – user1022585 2012-01-12 02:31:15

+0

之前mysql_escaped SQL注入攻擊 – 2012-01-12 12:00:10

回答

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 2012-01-12 14:59:20