【发布时间】:2015-11-29 12:12:24
【问题描述】:
我在这里看到了一些类似问题的答案,但还不能完全正确地实现。
我想在 2 个应该创建一对一关系的 oracle 表之间创建一个 JOIN。不幸的是,由于我的第二个表的设置,它返回一个一对多的关系。
这是我的两张桌子。 “项目”包含项目名称和项目的批号。然后,我需要进入我们的“Item_Inventory”表以查找该项目当前是否有库存(如果该项目当前不在此表中,则它没有库存)。
===========================
ITEMS
===========================
Item_No | Lot_Num
---------------------------
SHP-705-F | X456588R
BAG-DRAWSTR | Y245899Z
ALC-6697-MI | A237520P
---------------------------
=======================================================
ITEM_INVENTORY
=======================================================
Item_No | Lot_Num | BIN_LOC | QTY_ONHAND
-------------------------------------------------------
SHP-705-F | X456588R | P8541E | 82
SHP-705-F | X456588R | Q8870Q | 82
SHP-705-F | X456588R | U4142B | 82
BAG-DRAWSTR | Y245899Z | P5888D | 15
BAG-DRAWSTR | Y245899Z | R5588Z | 15
BAG-DRAWSTR | Y245899Z | W8339A | 15
-------------------------------------------------------
这是我的查询:
SELECT i.Item_No, i.Lot_Num
FROM ITEMS i
JOIN ITEM_INVENTORY inv ON inv.Item_No = i.Item_No AND inv.Lot_Num = i.Lot_Num
这是我要退货的(注意项目“ALC-6697-MI”被排除在外,因为它在 Item_Inventory 表中没有当前库存):
Item_No | Lot_Num
---------------------------
SHP-705-F | X456588R
BAG-DRAWSTR | Y245899Z
相反,由于 Item_Inventory.Bin_Loc 字段,我在 JOIN 时得到了这个:
Item_No | Lot_Num
-------------------------
SHP-705-F | X456588R
SHP-705-F | X456588R
SHP-705-F | X456588R
BAG-DRAWSTR | Y245899Z
BAG-DRAWSTR | Y245899Z
BAG-DRAWSTR | Y245899Z
我怎样才能加入这两个表,但保持一对一的关系?
谢谢
【问题讨论】:
-
请出示您的查询。
-
抱歉,已更新以包含我的查询
标签: oracle join oracle11g oracle10g oracle-sqldeveloper