繁体   English   中英

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

[英]Query displays first entry in table only - wrong!

$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表中的第一个Agent。我想根据Line Items表中的条目从这些表中输出相应的Agent Name,Country Name和Job Type。

请帮忙!

尝试改用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>";
}

我认为问题在于,您试图在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连接文档的链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM