2013-03-11 1 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

ответ

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

Смежные вопросы