본문 바로가기
MySql

MySQL PHP의 하위 쿼리

by 베이스 공부 2020. 10. 22.
반응형

두 개의 테이블로 쉬운 예를 들어 보겠습니다.

USERS (Id, Name, City)
PLAYERS (Id_Player, Number, Team)

그리고 하위 선택이 항상 동일한 루프에서 하위 선택을 사용하여 쿼리를 수행해야하므로 두 개의 쿼리로 나누고 하위 선택을 루프 외부에 두려고합니다.

내가 설명한다. 작동하지만 최적화되지 않는 항목 :

for($i=0;$i<something;$i++)
{
    $res2=mysql_query("SELECT Team from PLAYERS WHERE Number=$i 
        AND Id_Player IN (SELECT Id FROM USERS WHERE City='London')");
}

하고 싶은데 작동하지 않음 :

$res1=mysql_query("SELECT Id from USERS where City='London'");
for($i=0;$i<something;$i++)
{
    $res2=mysql_query("SELECT Team from PLAYERS WHERE Number=$i 
        AND Id_Player IN **$res1**");
}

감사!

 

해결 방법

 

이와 같은 것이 작동합니다.

<?
$sql = "SELECT Team from PLAYERS 
    JOIN USERS on (Id_player=Id)
    WHERE Number BETWEEN $minID AND $maxID
    AND City='London'
    GROUP BY Team";

$results=mysql_query($sql) or die(mysql_error());


// $results contain all the teams from London
// Use like normal..

echo "<ul>\n";

while($team = mysql_fetch_array($results)){
    echo "\t<li>{$team['Team']}</li>\n";
}

echo "</ul>";

 

참조 페이지 https://stackoverflow.com/questions/4691257

 

 

반응형

댓글