【发布时间】:2014-11-28 04:30:32
【问题描述】:
我有两张表,一张叫items,一张叫components。 items 表具有以下属性:
- 项目(例如 1、2、3、4、5)
- 类别(例如水果、蔬菜、肉类、奶制品)
- 名称(例如苹果、胡萝卜、沙拉盒、梨、香蕉)
- 重量(例如 500 克)
- 描述(例如一个苹果)
- 价格(例如 1.00)
且components表有以下属性:
- 组件(例如 1、2、3、4、5)
- 部分(引用项目表的项目主键)(例如 5、6、1、9、10)
- 项目(它引用项目表的项目主键)(例如 15、7、3、2、6)
这个想法是 items 表包含单个项目,例如苹果,以及包含许多其他项目的盒子,例如水果盒,组件表用于链接哪些项目是盒子中的零件,例如苹果是水果盒的一部分。
我想要做的是运行一个查询,该查询将显示作为盒子中组件的项目的名称,以及盒子的名称。
到目前为止,我可以运行以下查询:
select
*
from
lbs_items
join lbs_components using (item)
Which shows the names of the different boxes, but not what items are in them. And this query:
select
*
from
lbs_components
, lbs_items
where
lbs_components.part = lbs_items.item
其中显示属于框的项目,但不显示它们属于哪些框。
任何人有任何可以提供帮助的想法吗?
【问题讨论】:
-
看起来像一个分层查询。您可以先进行连接(在子查询中)并使用 connect by 子句来获取层次结构吗? docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm
标签: sql oracle select join rows