首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle,具有特殊请求的联接

oracle,具有特殊请求的联接
EN

Stack Overflow用户
提问于 2017-06-16 15:08:22
回答 0查看 34关注 0票数 0

我有三个表,分别是商品、库存和仓库。

代码语言:javascript
复制
CREATE TABLE "ARTICLE" 
(   "ID" NUMBER(9,0), 
    "NAME" VARCHAR2(30 BYTE)
)

CREATE TABLE "INVENTORY" 
(   "ID" NUMBER(9,0), 
    "ARTICLE_ID" NUMBER(9,0), 
    "QUANTITY" NUMBER(9,0),
    "WAREHOUSE_ID" NUMBER(9,0)
)

CREATE TABLE "WAREHOUSE" 
(   "ID" NUMBER(9,0), 
    "NAME" VARCHAR2(30 BYTE)
)

我创建了一个视图,其中显示了所有库存(带有文章名称等)。

代码语言:javascript
复制
CREATE VIEW "INVENTORY_VIEW" AS
a.ID AS A_ID,
a.NAME AS A_NAME,
i.ID AS I_ID,
i.QUANTITY AS I_QUANTITY,
i.WAREHOUSE_ID AS I_WAREHOUSE_ID
FROM
 ARTICLE a
LEFT OUTER JOIN INVENTORY i ON i.ARTICLE_ID = a.ID 

我这样做是为了确保,即使库存中没有行,我也会为每一篇文章分配一行。(在这种特殊情况下,I_WAREHOUSE_ID为null )除了一种情况之外,它可以很好地工作:

当然,一旦另一个仓库的库存中有一行,其他仓库的行( I_WAREHOUSE_ID = null)就消失了。(其他仓库(如仓库2)通过"WHERE I_WAREHOUSE_ID=2“或"I_WAREHOUSE_ID is null”选择库存。)

有谁知道怎么解决这个问题吗?我需要的是每个WAREHOUSE_ID (与ID)的文章行,如果没有这篇文章和仓库的事件行。我的想法是创建一个包含所有商品/仓库组合的第二个视图,然后将该表与库存连接起来,但我没有成功。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44582948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档