1

mysql_query 関数で使用するために MySQL を選択しようとしていますが、次のエラーが発生し続けます。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN Orgs ON Jobs.CustOrgID = Orgs.ID 
            LEFT JOIN Persons ON Jobs.CustPer' at line 11

私はすべてを試し、どこでも検索しましたが、何も機能していないようです。すべての助けに感謝します。

 $Qry = "SELECT 

     Jobs.ID, 
     'Jobs.Status',
     Jobs.JobNum, 
     'Orgs.Nme', 
     'Persons.FirstNme',
     'Persons.LastNme',
     'JobTypes.JobType',
     'Jobs.Dsc',
     'Jobs.Notes'
     FROM Jobs ";

     if($column !== null && $text !== null) {
        $Qry .= "WHERE " . $column . " LIKE '%" . $text . "%' ";
     }

     $Qry .= "LEFT JOIN Orgs ON Jobs.CustOrgID = Orgs.ID 
         LEFT JOIN Persons ON Jobs.CustPersonID = Persons.ID
         LEFT JOIN JobTypes ON Jobs.JobTypeID = JobTypes.ID 
         ORDER BY JobNum";

解決:

     SELECT ...
     FROM ...
     LEFT JOIN ...
     LEFT JOIN ...
     WHERE ...
     ORDER BY ...

私のWHEREは間違った場所にありました.2つのLEFT JOINSの後に来るはずです.

4

2 に答える 2

5

WHERE を間違った場所に挿入しています。結合後に来る必要があります。

SELECT ...
FROM ...
LEFT JOIN ...
LEFT JOIN ...
WHERE ...
ORDER BY ...
于 2013-07-19T19:22:47.447 に答える
3

単一引用符の代わりにバッククォートを使用するか、予約済みのキーワードまたは区切り文字列でない場合はバッククォートを使用する必要はありません。

これを試して :

     $Qry = "SELECT 

 `Jobs`.`ID`, 
 `Jobs`.`Status`,
 `Jobs`.`JobNum`, 
 `Orgs`.`Nme`, 
 `Persons`.`FirstNme`,
 `Persons`.`LastNme`,
 `JobTypes`.`JobType`,
 `Jobs`.`Dsc`,
 `Jobs`.`Notes`
 FROM Jobs ";
于 2013-07-19T19:22:35.523 に答える