php中的mysql左连接/外键问题

时间:2011-08-07 19:13:29

标签: php mysql sql left-join mysql-error-1064

我有表队列和请求。 queue的reqID是请求'reqID的外键。 两个表都有vanID

我试图获取队列中的所有内容,以及队列引用的每个请求的所有信息。这是我的疑问。

$sql = mysql_query("SELECT queue.*, requests.* 
                      FROM queue 
                     WHERE queue.vanID = '$vanID' 
                 LEFT JOIN requests ON queue.reqID = requests.reqID 
                  ORDER BY rank ASC") or die(mysql_error());

这是我得到的错误。

  

1064:您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在第1行的“排队ASC”的“LEFT JOIN请求”附近使用“queue.reqID = requests.reqID ORDER”

我似乎无法弄清楚,有什么帮助吗?

2 个答案:

答案 0 :(得分:3)

$sql = mysql_query("SELECT queue.*, requests.* FROM queue LEFT JOIN requests ON queue.reqID = requests.reqID WHERE queue.vanID = '$vanID' ORDER by rank ASC") or die(mysql_error());

你很亲密。 WHERE子句应该在LEFT JOIN之后。

答案 1 :(得分:2)

联接是查询的from部分的一部分,因此必须位于where部分之前:

SELECT queue.*, requests.* 
FROM queue 
    LEFT JOIN requests ON queue.reqID = requests.reqID 
WHERE queue.vanID = '$vanID' 
ORDER by rank ASC