2017-02-07 86 views
1

幾年來沒有做任何編程,所以再次生鏽。MySQL查詢不起作用,INNER JOIN附近的語法錯誤

我有兩個表users表和users_profiles表。我想更新users_profiles表,條件是user_uid在兩個表(users.user_uidusers_profiles.user_uid)以及users.user_login = 'johndoe'users.user_uid = '11'之間匹配。

它會在一個PHP腳本來執行,所以johndoe的實際上是用戶的用戶名(無論是存儲在會話和同爲users_uid。對於simplicitity我追加的虛擬數據。

我運行phpMyAdmin的查詢,並得到INNER附近有語法錯誤JOIN。我只是想不通我做錯了什麼(大概寫了這完全是錯誤的),並花了幾個小時試圖解決它沒有成功。

繼承人我的SQL查詢。

UPDATE 
     users_profiles 
    SET 
     users_profiles.user_fname = 'John', 
     users_profiles.user_lname = 'Doe', 
     users_profiles.user_gender = 'male' 
    INNER JOIN 
     users 
    ON 
     users.user_uid = users_profiles.user_uid 
    WHERE 
     users.user_login = 'johndoe' 
    AND 
     users.user_uid = '11' 

我得到的錯誤當通過phpmyadmin運行sql查詢時。

#1064 - 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 'ON users.user_uid, .user_uid FROM users_profiles WHERE 
users.user_login ' at line 7 

謝謝。

回答

0

嘗試交換SETINNER JOIN如圖所示,例如,在this SO answer(請給予好評參考,如果有用):

UPDATE 
     users_profiles p 
    INNER JOIN 
     users u 
    ON 
     u.user_uid = p.user_uid 
    SET 
     p.user_fname = 'John', 
     p.user_lname = 'Doe', 
     p.user_gender = 'male' 
    WHERE 
     u.user_login = 'johndoe' 
    AND 
     u.user_uid = 11 
+0

千恩萬謝@StephanLechner,完美的作品。謝謝。 – PHPLOVER

1

試試這個:

UPDATE 
     users_profiles 
     INNER JOIN 
      users 
     ON 
      users.user_uid = users_profiles.user_uid 
    SET 
     users_profiles.user_fname = 'John', 
     users_profiles.user_lname = 'Doe', 
     users_profiles.user_gender = 'male' 
    WHERE 
     users.user_login = 'johndoe' 
    AND 
     users.user_uid = '11' 
+0

非常感謝,完美的作品,我接受@StephanLechner答案的基礎上,他先發布它,但謝謝你永遠不會少。 – PHPLOVER