MySQl问题,尝试使用三个表

时间:2017-08-29 20:18:18

标签: php mysql join

我试图从三个不同的表中提取信息。

表一是Monthly Ship Reports - 其中每个报告都有shipofficer的密钥。

表2是Ships表,其中包含船舶的名称。 表3是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 个答案:

答案 0 :(得分: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

查询的一个问题是WHERE出现在JOIN之前。我希望这有帮助!