从表A中删除记录,其中表B中的字段x = y

时间:2012-12-21 23:04:24

标签: sql sql-delete delete-record

我有以下我一直在使用的查询,它可以很好地显示我想在phpMyAdmin中删除的记录:

SELECT zen_customers_basket.*
FROM zen_customers_basket, zen_products
WHERE zen_customers_basket.products_id = zen_products.products_id
            AND zen_products.products_availability = 'out of stock'

然后检查所有记录,然后删除它们。这是相当快速和轻松的,但我需要一个自动删除这些记录的查询,以便我可以使用其他一些计划每小时运行一次的查询来自动删除它们。任何和所有的帮助将不胜感激。我知道如何删除记录,但我不确定这里是否有正确的语法,因为我从两个不同的表中选择了一些东西而且我不想搞砸任何东西。

3 个答案:

答案 0 :(得分:0)

DELETE zen_customers_basket
FROM zen_customers_basket, zen_products
WHERE zen_customers_basket.products_id =          zen_products.products_id
        AND zen_products.products_availability =    'out of stock'

答案 1 :(得分:0)

    DELETE FROM Table  WHERE EXISTS (SELECT zen_customers_basket.*
FROM zen_customers_basket, zen_products
WHERE zen_customers_basket.products_id = zen_products.products_id
            AND zen_products.products_availability = 'out of stock')

https://stackoverflow.com/questions/8019957/delete-from-where-i n的

答案 2 :(得分:0)

根据您的查询使用相同的条件删除。不确定基于小时的删除。请澄清。

DELETE FROM zen_customers_basket
   INNER JOIN zen_products
   ON zen_customers_basket.products_id = zen_products.products_id
   WHERE zen_products.products_availability = 'out of stock'

参考:T-SQL: Selecting rows to delete via joins