在MySQL中加入id更新表

时间:2015-10-24 22:56:51

标签: mysql join

我正在尝试更新与另一个表连接的表来更新正确的记录。 到目前为止,这是我的命令:

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,因为这会在链接表中给出正确的记录。 我怎么解决这个问题?

2 个答案:

答案 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中,joinupdate语句本身的一部分。没有单独的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子句用于相同目的。