查询中有多个左连接

时间:2013-01-04 08:37:57

标签: php mysql sql

所以,我在这里有这个问题:

$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字段,旁边有一个位置字段..我需要获取每个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和匹配都有一个epos_id字段

所以我需要的是根据我匹配的epos_id找到rbpos_epos中的位置..

2 个答案:

答案 0 :(得分: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.'" 

答案 1 :(得分: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'; 

并在WHERE s

之后添加任何LEFT JOIN子句