【问题标题】:Rebuild oracle hierarchical query from two tables从两个表重建oracle分层查询
【发布时间】:2017-03-17 16:40:43
【问题描述】:

我正在为下表进行 oracle 分层查询 Classification_ProductOrder_details

分类产品有Classification_id,将根据用户选择存储在Order_details

分类产品表

Order_details 表

我想从 Order_details 表中选择所有具有父 LED Screen 的产品,这将返回所有具有父 LED Screen 的产品,无论孩子是 32 英寸或 50 英寸还是索尼三星等

我尝试使用下面的查询,但它的 replate 行很多

           SELECT B.CLASSIFICATION_ID, LEVEL AS VLEVEL, A.CATEGORY_ID, A.CATEGORY_DESC, CONNECT_BY_ISLEAF AS leaf
             FROM PRODUCT_CLASSIFICATION A, ORDER_DETAILS B
            WHERE A.STATUS = 1 and b.created_on like sysdate--AND leaf =1 
       START WITH A.CATEGORY_ID IS NULL
       CONNECT BY A.CATEGORY_ID = PRIOR A.CLASSIFICATION_ID
ORDER SIBLINGS BY A.CLASSIFICATION_ID;

【问题讨论】:

  • 首先查询复制了记录,因为您没有添加 where 条件来将 B 表与 A 关联起来,然后对于 B 表上的每条记录,复制 A 表上的结果。

标签: oracle oracle12c hierarchical-query


【解决方案1】:
select od.*
from order_details od
where
  od.classification_id in (
    select p.classification_id
    from product p
    start with p.category_desc = 'LED Screen'
    connect by prior p.classification_id = p.category_id
  )

【讨论】:

    猜你喜欢
    • 2017-06-03
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多