0

所以,我在这里有这个查询:

$query1 = 'SELECT users.first_name,users.last_name,users.phone, matching.date, matching.points, matching.time, matching.epos_id,rbpos_epos.epos_id,rbpos_epos.location
FROM users LEFT JOIN matching WHERE users.user_id="'.$id_user.'"
AND users.user_id=matching.user_id
LEFT JOIN rbpos_epos WHERE rbpos_epos.epos_id=matching.epos_id'; 

这给了我一个错误,我在最后一行尝试做什么:

 LEFT JOIN rbpos_epos WHERE rbpos_epos.epos_id=matching.epos_id'; 

是获取该特定 epos_id 的位置。

这意味着,在匹配表中,我有一个 epos_id 列,在 rbpos_epos 列中我有一个 epos_id 字段,旁边有一个 location 字段。我需要获取每个 epos_id 的相应位置。

我究竟做错了什么?谢谢..

这个有效

$query1 = 'SELECT users.first_name,users.last_name,users.phone, matching.date, matching.points, matching.time,matching.location
FROM users ,matching WHERE users.user_id="'.$id_user.'"
AND users.user_id=matching.user_id'; 

我需要从 rbpos_epos 表中获取位置。rbpos_epos 和 match 这两个表都有一个 epos_id 字段

所以我需要的是根据我在匹配时拥有的 epos_id 在 rbpos_epos 中找到位置。

4

2 回答 2

3

试试这个 ::

SELECT users.first_name,users.last_name,users.phone, matching.date, matching.points, matching.time, matching.epos_id,rbpos_epos.epos_id,rbpos_epos.location
FROM users 
INNER JOIN matching ON  users.user_id=matching.user_id
INNER JOIN rbpos_epos ON rbpos_epos.epos_id=matching.epos_id
WHERE users.user_id="'.$id_user.'" 
于 2013-01-04T08:39:18.677 回答
0

使用ON而不是WHERE在你的LEFT JOIN

$query1 = 'SELECT users.first_name,users.last_name,users.phone, matching.date, matching.points, matching.time, matching.epos_id,rbpos_epos.epos_id,rbpos_epos.location
FROM users LEFT JOIN matching ON users.user_id="'.$id_user.'"
AND users.user_id=matching.user_id
LEFT JOIN rbpos_epos ON rbpos_epos.epos_id=matching.epos_id'; 

并在s之后放置任何WHERE子句LEFT JOIN

于 2013-01-04T09:00:36.733 回答