2017-08-29 13 views
1

3つの異なるテーブルから情報を取得しようとしています。3つのテーブルで左外部結合を実行しようとするMySQlの問題

表1は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

あなたはそれを屠殺し、注射にあなた自身を開いています。 PHPの使用法を追加できますか?最初に動作するようにクエリを記述し、それをアプリケーションに持ち込むのが最善です。 – chris85

+0

注入に関するよりも間違ったSQL構文の詳細 –

+0

あなたのクエリはすべて乱されています。ジョインの後はどこに行きますか。 [SELECTリファレンス](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 

一つは、WHERE JOINを前に来たということです。私はこれが助けて欲しい!

+0

少し修正して、これを動作させました。今私はPHPにそれをフィードし、うまくいけばそれは動作する必要があります。 –

+0

美しく働いた。ありがとう、私は今構文がはるかによく理解しています。 –

関連する問題