几年没做任何编程,所以再次有点生疏了。
我有两个表users
表和users_profiles
表。我希望更新users_profiles
表,条件是user_uid
匹配两个表(users.user_uid
和users_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 :(得分: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)
如图所示,尝试交换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