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

v9tzhpje  于 2022-11-09  发布在  PHP
关注(0)|答案(2)|浏览(139)

几年没有做任何编程,所以我又有点生疏了。
我有两个表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也是一样的。
我在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
  • 谢谢-谢谢
nuypyhwy

nuypyhwy1#

试试看:

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'
jvlzgdj9

jvlzgdj92#

尝试交换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

相关问题