2016-05-28 44 views
0

我有兩個表格:第一個是travellers_details,第二個是 user_info加入查詢出錯

  • traveller_details表中的列ID,travel_modedep_fromarr_todep_dateuser_idstatus
  • user_info表具有列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

這很難回答這樣的問題。請分享你的表格結構',一些樣本數據以及你試圖從樣本中得到的結果。 – Mureinik

+0

改進問題格式以提高可讀性。 – DhiaTN

回答

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就足夠了。

請注意,表別名使查詢更易於編寫和讀取。