2013-04-23 63 views
0

我在MySQL中,產品和庫存兩個表...選擇非registred值

產品 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但它不工作..

謝謝

回答

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

非常感謝你的第一個..我有很大幫助^^ – kelelehead 2013-04-23 19:59:34

0

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