반응형
두 개의 테이블로 쉬운 예를 들어 보겠습니다.
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
반응형
'MySql' 카테고리의 다른 글
MySQL : 열에 단어 목록의 단어가 포함됨 (0) | 2020.10.23 |
---|---|
MySQL 하나의 문 내에서 MySQL의 자동 증가 값에 액세스 할 수 있습니까? (0) | 2020.10.22 |
MySQL이 비교를 위해 인덱스를 사용하지 않는 이유는 무엇입니까? (0) | 2020.10.22 |
MySQL 데이터베이스 용 "데이터 사전"을 만드는 유틸리티 (0) | 2020.10.22 |
MySQL에서 255보다 큰 값으로 VARCHAR를 선언하는 것이 현명합니까? (0) | 2020.10.22 |
댓글