我试图从三个不同的表中提取信息。
表一是Monthly Ship Reports
- 其中每个报告都有ship
和officer
的密钥。
表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脚本。
我想我要问的是,我可以这样做吗?所有的字段都是正确的。我是在屠杀这个问题,还是我想做一些不可能的事情?
答案 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之前。我希望这有帮助!