【问题标题】:Select merge two tables with one between each选择合并两个表,每个表之间有一个
【发布时间】:2013-03-11 01:50:24
【问题描述】:

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

表格数据如下:

[产品] ID - 姓名 1 - 苹果 2 - 香蕉 [仓库] ID - 姓名 1 - 一般 2 - 其他 [股票] 产品 - 仓库 - 库存 1 - 1 - 4 1 - 2 - 4 2 - 1 - 5 在这里,我想获取 'Storehouse' = '2' 上的所有产品 但如果不存在,则返回 'null' 或 '0' 而我假装得到的是: [选择] 产品 - 库存 1 - 4 2 - 空或“0”

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

【问题讨论】:

  • 不要使用varchar 存储整数。

标签: mysql sql select join


【解决方案1】:
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 ║
╚════╩════════╩═══════╝

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 2014-04-10
    • 2018-05-04
    相关资源
    最近更新 更多