当前位置: 首页 > 知识库问答 >
问题:

SQL更新关系在其他表中的表

柯浩壤
2023-03-14

您好,我有两个表,其中表1是针对产品的,表2是我想使用this SQL更新的类别,但不断出现语法错误

UPDATE product SET local_delivery = 0,none_local_delivery = 0,
WHERE EXISTS
(SELECT product.local_delivery,product.none_local_delivery 
FROM product
INNER JOIN product_to_category ON product.product_id = 
product_to_category.product_id WHERE
product_to_category.category_id = 90 )

1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,在第4行的“WHERE EXISTS(SELECTproduct.local_delivery,product.none”附近使用正确的语法

共有2个答案

邢卓
2023-03-14

使用以下语法

UPDATE p
SET    local_delivery = 0,
       none_local_delivery = 0
FROM   product AS p
WHERE  EXISTS (SELECT  1
               FROM   product P
                      INNER JOIN product_to_category PCT
                              ON P.product_id =
                                 PCT.product_id
               WHERE  PCT.category_id = 90);  

或遵循语法并删除存在的

UPDATE p
SET    local_delivery = 0,
       none_local_delivery = 0
FROM   product p
       INNER JOIN product_to_category PTC
               ON P.product_id = PTC.product_id
WHERE  product_to_category.category_id = 90  
丁经国
2023-03-14

语法错误是WHERE前面的逗号。

然后,update语句更新表中的所有行或无行,具体取决于类别90是否存在产品。

我想你宁愿更新90类的所有产品。为了实现这一点,请将产品类别与您正在更新的产品关联起来。如果我的假设是正确的,那么查询必须如下所示:

UPDATE product SET local_delivery = 0,none_local_delivery = 0
WHERE EXISTS
(
  SELECT NULL
  FROM product_to_category 
  WHERE product_to_category.product_id = product.product_id
  AND product_to_category.category_id = 90
);

或者用中的稍微简单一点:

UPDATE product SET local_delivery = 0,none_local_delivery = 0
WHERE product_id IN 
        (SELECT product_id FROM product_to_category WHERE category_id = 90);

 类似资料:
  • 我有两张桌子,一张是给员工的,另一张是给部门的。一个部门可以有多个/不同的员工,但一个员工只能在一个部门工作。他们的关系是一对多。 表创建: 表插入:

  • 问题内容: 我创建了一个SQL查询,该查询更新了一个表列,其中另一列=值 代码: 问题出在。如何使其使用这些ID更新列? 问候。 问题答案: 替换为

  • 我有一个表,它有一个主键,这个主键是用table Generator生成的: @tablegenerator(name=“resourceidgenerator”,table=“sequence”,pkColumnName=“name”,pkColumnValue=“resource_type_id”,valueColumnName=“nextid”,allocationSize=1),它工作得很

  • 问题内容: 我想要做的就是在我的数据库的用户,但它应该排,一个新行。 Ofcourse我连接到数据库第一和的,并从URL字符串。 可以,但是只添加新行; 这是我尝试过的; 和 和 但是它们都不起作用,我在做什么错? 任何帮助是极大的赞赏! 问题答案: 如果不存在约束,请在您的列上创建约束: 用途: (subs_name, subs_email, subs_birthday) VALUES (?,

  • 我有多个谷歌电子表格与预订数据,如预订号码,客户端名称,电子邮件,预订日期等。在所有工作表中,这些列的顺序并不相同。 我想在一个“主”电子表格中更新我所有“源”表中的所有数据。这意味着,一旦添加新行或更新现有行,数据将同步到主电子表格 实现这一目标的最佳方式是什么?Javascript或者是否存在一些现有的Google Sheets插件? 示例表1:快速船预订 示例表2:机场中转预订 主表 非常感

  • 我有3个表:,,。用户和池具有透视表,因为它们具有多对多关系。 权限条目仅由我手动创建。然后,每个池可以根据自己的用户认为合适的情况将权限分配给他们自己的用户。因此,用于将用户链接到权限的透视表需要同时具有和和 那么这个数据透视表是如何工作的呢?如何制作三向透视表? 编辑:我的问题基本上是在这里问的,没有令人满意的答案!