选择合并两个表,每个表之间有一个

时间:2013-03-11 01:50:24

标签: mysql sql select join

我一直在寻找如何实现这一点,但我甚至不知道它是如何调用的(用于搜索它)。所以我在这里:

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'

我不知道使用哪种语句,所以至少我需要一个线索。感谢。

1 个答案:

答案 0 :(得分: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

RESULT

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