我一直在寻找如何做到这一点,但我甚至不知道它是如何被称为(搜索它)。所以我有:
表格数据如下:
[产品]
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 ║
╚════╩════════╩═══════╝