0

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

产品 int id_product varchar 名称

库存id_inventory product_id 存在

因此,当我的产品“3”缺货时,我删除了 Inventory 中 product_id = 3 的行现在我需要获取我在 Inventory 中删除的所有值,因为我需要报告丢失的产品...

如何进行此查询?

我用过SELECT i.* FROM inventory i, products p WHERE i.product_id!=p.id_product但是不行。。

谢谢

4

2 回答 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

无论哪种方式都有效

于 2013-04-23T19:53:42.480 回答
0

或者

select p.* from product p 
where not exists (select null from inventory i where i.product_id=p.id_product)
于 2013-04-23T19:58:15.670 回答