2

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

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

表数据如下:

[产品]
ID - 姓名
 1 - 苹果
 2 - 香蕉

[仓库]
ID - 姓名
 1 - 一般
 2 - 其他

[股票]
产品 - 仓库 - 库存
    1 - 1 - 4
    1 - 2 - 4
    2 - 1 - 5

在这里,我想获取 'Storehouse' = '2' 上的所有产品
但如果不存在,则返回 'null' 或 '0' 而我假装得到的是:

[选择]
产品 - 库存
   1 - 4
   2 - 空或“0”

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

4

1 回答 1

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 ║
╚════╩════════╩═══════╝
于 2013-03-11T01:56:33.923 回答