MySQl问题,试图做三个表的左外连接

MySQl问题,试图做三个表的左外连接

问题描述:

我想从三个不同的表中获取信息。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

我想你的结构化查询的方式不正确,试试这个:

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

工作很好。谢谢,我现在更好地理解语法。 –