2017-03-17 16 views
0

からOracleの階層問合せを再構築し、私は下の表は、Oracle階層問合せに取り組んでいます Classification_ProductOrder_detailsテーブル2つのテーブル

分類製品は、ユーザーの選択

に応じOrder_detailsに保存されますClassification_idを持っています分類Productテーブル Classification Product table

ORDER_DETAILSテーブル Order_details table

私はどんな子供が32インチまたは50インチであるか、ソニー、サムスンなどなど

私が使用しようとした親LED Screenを持っているすべての製品を返却しません親LED Screenを持ってOrder_detailsテーブルからすべての製品を選択しますクエリ以下が、その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; 
+0

最初のクエリがレコードを複製し、あなたが関係にAとBのテーブルをWHERE条件を追加していないので、その後、Bテーブル上のレコードごとに結果を複製テーブル上に – hackvan

答えて

0
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 
)