2017-08-29 67 views
1

我想從三個不同的表中獲取信息。MySQl問題,試圖做三個表的左外連接

表一是Monthly Ship Reports - 其中每個報表都有一個密鑰shipofficer

表二是Ships表,其中有船名。 表三是officers表,其中有官員的名字。

SELECT ship_monthly_report.*, 
     ships.ship_name, 
     officers.officers_title, 
     officers.first_name, 
     officers.last_name 
WHERE report_key = '" . $_POST["monthly_report_ID"] . 
"LEFT JOIN Ships 
ON Ship_Monthly_Report.Ship_ID = Ships.Ship_Primary_Key 
LEFT JOIN Officers 
ON Ship_Monthly_Report.Capt_ID = Officers.Officers_PK 
ORDER BY report_line_number ASC 

是我寫的查詢..它返回null。這是一個PHP腳本。

我想我問的是,我可以這樣做嗎?所有的字段都是正確的。我在屠殺查詢還是我想做一些不可能的事情?

+1

你在屠殺它並打開自己注射。你可以添加PHP的使用?最好先編寫查詢,然後將其帶入您的應用程序。 – chris85

+0

它更多關於錯誤的SQL語法比關於注入 –

+0

您的查詢全部搞砸了。連接之後。 [SELECT reference](https://dev.mysql.com/doc/refman/5.7/en/select.html) – aynber

回答

0

我想你的結構化查詢的方式不正確,試試這個:

SELECT t1.*, t2.Ship_Name, t3.Officers_Title, t3.First_Name, t3.Last_Name 
FROM Ship_Monthly_Report t1 
LEFT OUTER JOIN Ships t2 
ON t1.Ship_ID = t2.Ship_Primary_Key 
LEFT OUTER JOIN Officers t3 
ON t1.Capt_ID = t3.Officers_PK 
WHERE t1.report_key = *[your POST value]* 
ORDER BY t1.report_line_number ASC 

一個與查詢的問題是,哪裏傳來的JOIN之前。我希望這有助於!

+0

隨着一點修改,我得到了這個工作。現在我需要將它反饋給PHP並希望它能夠正常工作。 –

+0

工作很好。謝謝,我現在更好地理解語法。 –