【发布时间】:2011-01-14 12:52:30
【问题描述】:
让我们用两个表格举一个简单的例子:
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**");
}
谢谢!
【问题讨论】:
-
为什么要进行两个查询而不是一个?一个带有子选择的查询会比两个独立的查询更快。另外,您能告诉我们您遇到了什么错误吗?
标签: php sql mysql subquery sql-subselect