我正在尝试构建一个SQL命令来更新我的表
更新myProduct
中的行(如果表order
中不存在,或者如果存在,请检查表order
,如果代码为!= 1则更新
UPDATE myProduct
SET statut = 3
WHERE
myProduct_id NOT IN (SELECT myProduct_id
FROM order
WHERE code != 1
AND myProduct.myProduct_id = order.myProduct_id)
OR NOT EXISTS IN (SELECT myProduct_id FROM order)
提前谢谢
答案 0 :(得分:0)
使用以下代码..
UPDATE p
SET statut = 3
FROM myProduct p
WHERE NOT EXISTS
(SELECT 1
FROM order o
WHERE code != 1
AND p.myProduct_id = 0.myProduct_id)
答案 1 :(得分:0)
我认为逻辑是:更新order
中相应行不为1(或不存在)的所有行。
如果是这样,你可以用一个更简单的陈述来做到这一点:
UPDATE myProduct p
SET statut = 3
WHERE NOT EXISTS (SELECT 1
FROM orders o
WHERE o.code = 1 AND p.myProduct_id = o.myProduct_id);
您没有指定数据库,但以上是标准SQL。
注意:order
对于表来说是一个非常糟糕的名称,因为它是一个SQL关键字。这就是为什么我使用orders
代替order
。
答案 2 :(得分:0)
更新myProduct SET statut = 3 什么不存在(从订单中选择1 WHERE代码!= 1 AND myProduct.myProduct_id = order.myProduct_id)