MySQL查询不起作用,INNER JOIN附近的语法错误

时间:2017-02-07 23:27:39

标签: mysql phpmyadmin syntax-error

几年没做任何编程,所以再次有点生疏了。

我有两个表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

感谢。

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分: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