查询仅显示表中的第一个条目 - 错误!

时间:2009-08-27 17:12:16

标签: php mysql

$query = "SELECT A.Agent_Name, C.Country_Name, J.Job_Type FROM Line_Items LI, Agents A, 
          Country C, Job J WHERE LI.Agent_ID = 1 AND LI.Agent_ID = A.Agent_ID AND 
          LI.Country_ID = C.Country_ID AND LI.Job_ID = J.Job_ID";
$result = mysql_query($query);
while($row = mysql_fetch_query($result)) {
    echo "Agent:" . $row['Agent_Name']."<br>";
    echo "Country:" . $row['Country_Name']."<br>";
    echo "Job:" . $row['Job_Type']."<br>";
}

此查询仅输出AGents表中的第一个代理,Country表和Job表...我想根据行项中的条目从这些表中输出相应的代理名称,国家名称和作业类型表

请帮忙!

2 个答案:

答案 0 :(得分:1)

请尝试使用mysql_fetch_array

while($row = mysql_fetch_array($result)) {
    echo "Agent:" . $row['Agent_Name']."<br>";
    echo "Country:" . $row['Country_Name']."<br>";
    echo "Job:" . $row['Job_Type']."<br>";
}

答案 1 :(得分:0)

我认为问题在于,您试图在SQL中提取您在单个/简单SELECT语句中无法访问的值。您应该使用JOIN语句来处理您正在尝试的内容 - 根据两个或多个表之间的公共列数据从一个或多个表中提取数据。快速尝试SQL:

SELECT A.Agent_Name, C.Country_Name, J.Job_Type FROM Line_Items LI INNER JOIN 
( Agents A CROSS JOIN Country C CROSS JOIN Job J ) ON
( LI.Agent_ID = 1 AND 
LI.Agent_ID = A.Agent_ID AND 
LI.Country_ID = C.Country_ID AND 
LI.Job_ID = J.Job_ID );
编辑:抱歉错过了FROM - 确实需要它。我不是想为你获得一个完美的SQL语句 - 你知道你需要什么列以及匹配什么:它只是一个粗略的草图。这是官方MySQL加入文档的link

相关问题