2014-08-31 51 views
-1

我正在使用MySQL查詢從多個表中選擇數據使用LEFT OUTER JOIN。現在,當我執行查詢時,出現以下錯誤:我的MySQLi查詢給出了錯誤,但我找不到這是錯誤的

您的SQL語法錯誤;檢查 對應於你的MySQL服務器版本正確的語法使用 附近「wg.werkbon_global_id = wk.werkbon_klant_globalid LEFT OUTER JOIN 用戶爲u」在列16

手動只是問題是,我無法找出我的查詢出了什麼問題。

PHP查詢:

$query = ' 
    SELECT 
     wg.werkbon_global_id AS id, 
     wg.werkbon_global_status AS status, 
     wg.werkbon_global_date_lastedit AS date, 
     usr.user_firstname AS monteur_vn, 
     usr.user_insertion AS monteur_tv, 
     usr.user_lastname AS monteur_an, 
     wg.werkbon_global_type AS type, 
     wg.werkbon_global_layout AS layout, 
     wg.werkbon_global_werkzaamheden AS werkzaamheden, 
     wg.werkbon_global_opmerkingen AS opmerkingen, 
     wk.werkbon_klant_nummer AS klantnr 
    FROM 
     werkbon_klant AS wk 
    LEFT OUTER JOIN werkbon_global AS wg 
     wg.werkbon_global_id = wk.werkbon_klant_globalid 
    LEFT OUTER JOIN users AS usr 
     usr.user_id = wg.werkbon_global_monteur_finish 
    WHERE 
     wk.werkbon_klant_nummer = '.$db->Quote($klantid).' 
    ORDER BY id ASC; 
$result = $db->loadAssoc($query); 

我想我的問題有一些待辦事項與左外連接,但什麼?

+1

你有一個缺少的報價''' - 最有可能'ORDER BY ID ASC';' – 2014-08-31 14:07:17

+0

我在哪裏錯過了報價?不在那裏。我查了查詢withoud ORDER BY – Paules 2014-08-31 14:08:30

+0

重新加載我上面的評論。我編輯它 - 'ORDER BY id ASC';' - 編輯:根據Arkascha的評論已被刪除的混合。雙編輯。 – 2014-08-31 14:09:11

回答

3

您在連接中缺少ON運算符!

爲聯接正確的語法是:

SELECT * FROM x LEFT JOIN y ON condition WHERE... 
+0

加上缺少的報價。 – 2014-08-31 14:12:23

+0

謝謝你是這個問題。謝謝。現在沒有任何報價缺失工作。 – Paules 2014-08-31 14:12:51

+0

很高興我能幫忙;-) – arkascha 2014-08-31 14:13:47

0
$query = " 
SELECT 
    wg.werkbon_global_id AS id, 
    wg.werkbon_global_status AS status, 
    wg.werkbon_global_date_lastedit AS date, 
    usr.user_firstname AS monteur_vn, 
    usr.user_insertion AS monteur_tv, 
    usr.user_lastname AS monteur_an, 
    wg.werkbon_global_type AS type, 
    wg.werkbon_global_layout AS layout, 
    wg.werkbon_global_werkzaamheden AS werkzaamheden, 
    wg.werkbon_global_opmerkingen AS opmerkingen, 
    wk.werkbon_klant_nummer AS klantnr 
FROM 
    werkbon_klant AS wk 
LEFT OUTER JOIN werkbon_global AS wg 
    wg.werkbon_global_id = wk.werkbon_klant_globalid 
LEFT OUTER JOIN users AS usr 
    usr.user_id = wg.werkbon_global_monteur_finish 
WHERE 
    wk.werkbon_klant_nummer = '.$db->Quote($klantid).' 
ORDER BY id ASC"; 

$結果= $ DB-> loadAssoc($查詢);

確保有不缺少報價

0

問題soved感謝arkascha

現在的固定的查詢是:

$query = ' 
    SELECT 
     wg.werkbon_global_id AS id, 
     wg.werkbon_global_status AS status, 
     wg.werkbon_global_date_lastedit AS date, 
     usr.user_firstname AS monteur_vn, 
     usr.user_insertion AS monteur_tv, 
     usr.user_lastname AS monteur_an, 
     wg.werkbon_global_type AS type, 
     wg.werkbon_global_layout AS layout, 
     wg.werkbon_global_werkzaamheden AS werkzaamheden, 
     wg.werkbon_global_opmerkingen AS opmerkingen, 
     wk.werkbon_klant_nummer AS klantnr 
    FROM 
     werkbon_klant AS wk 
    LEFT OUTER JOIN werkbon_global AS wg ON 
     wg.werkbon_global_id = wk.werkbon_klant_globalid 
    LEFT OUTER JOIN users AS usr ON 
     usr.user_id = wg.werkbon_global_monteur_finish 
    WHERE 
     wk.werkbon_klant_nummer = '.$db->Quote($klantid).' 
    ORDER BY id ASC'; 
$result = $db->loadAssoc($query); 

@fred我不需要用柱加引號名。您只需要按字符串/斑點值添加引號。 @johny我的$ db-> Quote()函數會自動添加qoutes。我不需要添加它們並將所有內容放在引號中。

謝謝大家的幫助。

相關問題