我正在尝试更新与另一个表连接的表来更新正确的记录。 到目前为止,这是我的命令:
UPDATE
links l
SET
l.l_id = `[value-1]`,
l.l_facebook = `[value-2]`,
l.l_youtube = `[value-3]`,
l.l_twitter = `[value-4]`,
l.l_googleplus = `[value-5]`,
l.l_rss = `[value-6]`,
l.l_homepage = `[value-7]`,
l.l_freigegeben = `[value-8]`
JOIN
sponsering ON l.l_id = sponsering.links_l_id
WHERE
sponsering.s_userID = 2
尝试在phpmyadmin中运行该命令会给我以下错误消息:
1064 - 您的SQL语法出错;查看与MariaDB服务器版本对应的手册,以获取正确的语法 靠近'JOIN sponsering ON l.l_id = sponsering.links_l_id WHERE
第12行的sponsering.s_user'
我需要加入表sponsering
,因为这会在链接表中给出正确的记录。
我怎么解决这个问题?
答案 0 :(得分:1)
试试这个
UPDATE
links l,
sponsering s
SET
l.l_faceook = `[value-2]`,
l.l_youtube = `[value-3]`,
l.l_twitter = `[value-4]`,
l.l_googleplus = `[value-5]`,
l.l_rss = `[value-6]`,
l.l_homepage = `[value-7]`,
l.l_freigegeben = `[value-8]`
WHERE
l.l_id = s.links_l_id AND
sponsering.s_userID = 2
答案 1 :(得分:0)
在MySQL中,join
是update
语句本身的一部分。没有单独的from
:
UPDATE links l JOIN
sponsering s
ON l.l_id = s.links_l_id
SET
l.l_id = `[value-1]`,
l.l_faceook = `[value-2]`,
l.l_youtube = `[value-3]`,
l.l_twitter = `[value-4]`,
l.l_googleplus = `[value-5]`,
l.l_rss = `[value-6]`,
l.l_homepage = `[value-7]`,
l.l_freigegeben = `[value-8]`
WHERE s.s_userID = 2;
其他一些数据库使用FROM
子句用于相同目的。