我有两个表:第一个是travellers_details
,第二个是。{
user_info
。
travel_mode
,dep_from
,arr_to
,dep_date
,user_id
和status
。user_id
,first_name
,last_name
,email
列。我希望两个表的所有记录都加入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'";
答案 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
就足够了。
请注意,表别名使查询更易于编写和阅读。