【发布时间】:2014-02-10 12:37:12
【问题描述】:
我有以下选择查询:
SELECT opt.product_option_id
FROM `oc_product_option_value` AS opt_val, `oc_product_option` AS opt
WHERE `opt`.`product_option_id` = `opt_val`.`product_option_id`
AND `opt_val`.`price` = '0.0000'
我认为我可以在 delete 查询中使用它:
DELETE oc_product_option, oc_product_option_value FROM oc_product_option
INNER JOIN oc_product_option_value
WHERE `oc_product_option`.`product_option_id` = `oc_product_option_value`.`product_option_id`
AND `oc_product_option_value`.`price` = '0.0000'
但这删除了oc_product_option 中的所有行。那我做错了什么?
【问题讨论】:
-
oc_product_option中的所有东西的价格都是'0.0000'是我的第一个猜测。 -
@GordonLinoff,这不是真的。
oc_product_option中没有price表。在第二张表(oc_product_option_value)中,确实有0.0000的价格,但也有一些价格为0.8260... -
Your code works fine。我唯一的猜测是戈登的第一个。
-
@Mathlight 。 . .那将是
oc_product_option_value表。另一种选择是您只运行查询的前两行或前三行,而不是全部四行。
标签: mysql sql select sql-delete