MySQL 查询无效,INNER JOIN 附近有语法错误

MySQL query not working, syntax error near INNER JOIN

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

我有两个 tables users table 和 users_profiles table。我想更新 users_profiles table,条件是 user_uid 在 table(users.user_uidusers_profiles.user_uid)和 [=19] 上都匹配=] 和 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.运行ning 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

谢谢。

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

试试这个:

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'