加入查询出错

时间:2016-05-28 12:29:43

标签: mysql

我有两个表:第一个是travellers_details,第二个是。{ user_info

  • traveller_details表包含列ID,travel_modedep_fromarr_todep_dateuser_idstatus
  • user_info表包含user_idfirst_namelast_nameemail列。

我希望两个表的所有记录都加入user_id并且我写了以下查询但不正确:

$sql="SELECT * FROM `traveller_details` FULL OUTER JOIN `user_info` on
traveller_details.user_id=user_info.user_id where traveller_details.dep_from='".$this->from."' and
traveller_details.arr_to='".$this->to."' and traveller_details.dep_date='".$this->sending_date."' and
traveller_details.status='N'";

1 个答案:

答案 0 :(得分:0)

MySQL不支持full outer join,因此您的查询肯定不起作用。我怀疑left join就足够了:

SELECT *
FROM `traveller_details` td LEFT OUTER JOIN
     `user_info` ui
     ON td.user_id = ui.user_id 
WHERE td.dep_from = '".$this->from."' AND
      td.arr_to = '".$this->to."' AND
      td.dep_date = '".$this->sending_date."' AND
      td.status = 'N'";

如果所有旅行者都有有效的用户信息,那么INNER JOIN就足够了。

请注意,表别名使查询更易于编写和阅读。