【问题标题】:SQL delete a category if category is empty如果类别为空,SQL 删除类别
【发布时间】:2017-06-15 17:40:08
【问题描述】:

我有一个问题,我有一个产品类别。我的问题是,如果类别为空且没有产品,我如何从数据库中删除类别。

我的代码:

$sql = "DELETE 
FROM category AS a 
INNER JOIN products AS b 
ON a.cat_id = b.cat_id 
WHERE a.user_id = ? 
AND a.cat_id = ? LIMIT 1";

【问题讨论】:

    标签: mysql sql mariadb


    【解决方案1】:
    DELETE FROM category AS a 
    Where a.cat_id = ?
    And not exists(
     Select 1
     From products p
     Where p.cat_id = a.cat_id
    );
    

    这个查询匹配我在绑定变量上的猫,并过滤掉那些有相应产品的猫。

    【讨论】:

      【解决方案2】:

      我会使用not exists 运算符来查找products 表中[不] 的类别:

      DELETE 
      FROM   category c
      WHERE  NOT EXISTS (SELECT *
                         FROM   products p
                         WHERE  c.cat_id = p.cat_id);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-10
        • 2021-08-11
        • 2011-06-05
        • 1970-01-01
        相关资源
        最近更新 更多