我有三个表,分别是商品、库存和仓库。
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)
)我创建了一个视图,其中显示了所有库存(带有文章名称等)。
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)的文章行,如果没有这篇文章和仓库的事件行。我的想法是创建一个包含所有商品/仓库组合的第二个视图,然后将该表与库存连接起来,但我没有成功。
https://stackoverflow.com/questions/44582948
复制相似问题