【问题标题】:SQL syntax error INNER JOINSQL 语法错误 INNER JOIN
【发布时间】:2018-05-04 03:43:22
【问题描述】:

我正在尝试运行此 sql 查询并不断收到此错误:

您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 'INNER JOIN wp_posts ON wp_postmeta.post_id = wp_posts.ID WHERE 附近 wp_posts.post_typ' 在第 3 行(第 4 行)

我的sql查询是这样的:

UPDATE wp_postmeta
SET meta_value = "1316"
INNER JOIN wp_posts ON wp_postmeta.post_id = wp_posts.ID
WHERE wp_posts.post_type="imagen_dia" AND wp_postmeta.meta_key="ae_post_template"

有什么帮助吗?

【问题讨论】:

  • 缺少来自...
  • 哪个 DBMS?甲骨文? MySQL? SQL 服务器? ...在各种 DBMS 中,连接更新的语法有很大不同。顺便说一句,双引号用于名称;对字符串使用单引号。

标签: mysql sql inner-join


【解决方案1】:

在mysql中JOIN应该在集合之前

UPDATE wp_postmeta
INNER JOIN wp_posts ON wp_postmeta.post_id = wp_posts.ID
SET meta_value = "1316"
WHERE wp_posts.post_type="imagen_dia" AND wp_postmeta.meta_key="ae_post_template"

【讨论】:

  • 非常感谢!!!现在它完美运行!我一直在使用 sql,不知道我必须使用 mysql。你拯救了我的一天。再次感谢我的朋友!! :)
【解决方案2】:

联合更新的语法是特定于供应商的。因此,无需连接即可使更新语句简单、易读且安全:-)

UPDATE wp_postmeta 
SET meta_value = '1316'
WHERE meta_key = 'ae_post_template'
AND post_id IN (SELECT id FROM wp_posts WHERE post_type = 'imagen_dia');

此语句是标准 SQL,应该适用于几乎所有 RDBMS。

【讨论】:

    【解决方案3】:

    您缺少FROM 字:

    UPDATE wp_postmeta
    SET meta_value = "1316"
    FROM wp_postmeta
    INNER JOIN wp_posts ON wp_postmeta.post_id = wp_posts.ID
    WHERE wp_posts.post_type="imagen_dia" AND wp_postmeta.meta_key="ae_post_template"
    

    【讨论】:

      猜你喜欢
      • 2015-01-30
      • 1970-01-01
      • 2023-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      相关资源
      最近更新 更多