2013-03-11 50 views
2

我一直在尋找如何實現這一點,但我甚至不知道它是如何調用的(用於搜索它)。所以在這裏我有什麼:選擇合併兩個表,每個之間有一個

http://i45.tinypic.com/2zzqjco.png

該表中的數據是這樣的:

 
[Products] 
ID - Name 
1 - Apple 
2 - Banana 

[Storehouses] 
ID - Name 
1 - General 
2 - Other 

[Stocks] 
Product - Storehouse - Stock 
    1 -  1  - 4 
    1 -  2  - 4 
    2 -  1  - 5 

Here I want get all the products on 'Storehouse' = '2' 
but if not exists return 'null' or '0' And what I pretend to get is: 

[SELECT] 
Product - Stock 
    1  - 4 
    2  - null OR '0' 

我不知道至極語句中使用,所以至少我需要一個線索。謝謝。

+2

不要使用'varchar'存儲的整數。 – Kermit 2013-03-11 01:55:43

回答

3
SELECT a.ID, 
     a.Name, 
     COALESCE(b.Stock, 0) Stock 
FROM Products a 
     LEFT JOIN stocks b 
      ON a.ID = b.Product AND 
       b.StoreHouse = 2 

爲了進一步獲得更多的知識有關加入,請訪問以下鏈接:

最後,該產品的商店數量如INT,而不是VARCHAR

結果

╔════╦════════╦═══════╗ 
║ ID ║ NAME ║ STOCK ║ 
╠════╬════════╬═══════╣ 
║ 1 ║ Apple ║  4 ║ 
║ 2 ║ Banana ║  0 ║ 
╚════╩════════╩═══════╝ 
+0

謝謝,工作就像一個魅力!鏈接也很有用。 – xtyp 2013-03-11 02:28:46