我一直在寻找如何做到这一点,但我甚至不知道它是如何被称为(搜索它)。所以我有:
表格数据如下:
[产品]
ID-名称
1-苹果
2-香蕉
[仓库]
ID-名称
1-概述
2-其他
[股票]
产品-仓库-库存
1-1-4
1-2-4个
2-1-5个
我要把“仓库”上的所有产品都拿到这里
但如果不存在,返回“null”或“0”,而我假装得到的是:
[选择]
产品-库存
1至4
2-空或“0”
我不知道wich语句的用法,所以至少我需要一个线索。谢谢。

最佳答案

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

SQLFiddle Demo
若要进一步了解有关联接的更多信息,请访问以下链接:
Visual Representation of SQL Joins
最后,将产品的数量存储为INT,而不是VARCHAR
结果
╔════╦════════╦═══════╗
║ ID ║  NAME  ║ STOCK ║
╠════╬════════╬═══════╣
║  1 ║ Apple  ║     4 ║
║  2 ║ Banana ║     0 ║
╚════╩════════╩═══════╝

10-06 13:57
查看更多