首页 文章

在MYSQL中选择非注册值

提问于
浏览
0

我在Mysql,Products和Inventory中有两个表...

产品int id_product varchar名称

库存id_inventory product_id存在

因此,当我的产品'3'缺货时,我删除了库存中的行product_id = 3现在我需要获取我在库存中删除的所有值,因为我需要报告缺少的产品...

我该如何进行此查询?

我使用 SELECT i.* FROM inventory i, products p WHERE i.product_id!=p.id_product 但它不起作用..

谢谢

2 回答

  • 1

    LEFT JOIN可以按照您的意愿执行,因为您要查找的行在产品中的行的库存中没有相应的行,因此提供查询...

    SELECT
        p.product_id
    FROM product p
    LEFT JOIN inventory i
    ON i.product_id = p.product_id
    WHERE i.product_id IS NULL
    

    或者,您可以在不可用时从库存中删除该行 . 就这样做

    SELECT
        p.product_id
    FROM product p
    INNER JOIN inventory i
    ON i.product_id = p.product_id
    AND i.quantityInStock = 0
    

    无论哪种方式都有效

  • 0

    要么

    select p.* from product p 
    where not exists (select null from inventory i where i.product_id=p.id_product)
    

相关问题