几年未做任何编程,因此又有点使用rust 。
我有两个表users
表和users_profiles
表。我想在两个表(users_profiles
和user_uid
)都匹配users.user_uid
且users_profiles.user_uid
和users.user_login = 'johndoe'
都匹配的条件下更新users.user_uid = '11'
表。
它将在一个php脚本中执行,因此johndoe实际上是用户的用户名(无论存储在 session 中的用户名如何,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
谢谢。
最佳答案
尝试如图所示交换SET
和INNER 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