2012-01-12 3 views
2

Я знаю, что это не очень хорошая идея для циклических запросов SQL, поэтому я хотел бы изменить эти два запроса в один.sql comb 2 запросов с JOIN

Не слишком большой в ПРИСОЕДИНИТЕЛЯХ, я изо всех сил пытаюсь понять, как объединить эти два, и в этом есть 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

** ПРЕДУПРЕЖДЕНИЕ ** код чувствителен к SQL-инъекций –

+0

' '$ city'' является mysql_escaped до этого запроса – user1022585

+0

я не знал это, но это обычная практика. –

ответ

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

Смежные вопросы