У меня есть таблица, которая содержит следующие данныеИспользование SQL для рекурсивного поиска таблицы для родительских отношений ребенка
ArticleID publisherID
----------------------------
1001 9001
1001 9002
1001 9003
1002 9004
1002 9005
1003 9006
1004 9007
1005 9008
1006 9009
1007 9010
1007 9011
1007 9012
1008 9013
1008 9014
1009 9015
1010 9016
1011 9017
1012 9018
1012 9019
1012 9020
1012 9021
1012 9022
1012 9023
1013 9024
1013 9025
1014 9026
1014 9027
1014 9028
1015 9029
1015 9030
Изделие может быть связан с более чем одним издателем. Издатели в этой таблице могут быть связаны с тем, что один издатель может быть родителем другого издателя. Что я хочу знать, я хочу перечислить все статьи, относящиеся только к издателям, которые связаны друг с другом. то есть, даже если данные показывают, что статьи имеют разные издатели издатели фактически же на основе таблицы издателя отношения ниже:
publisherid publisher_parent_id
----------------------------------
9001 9001
9002 9001
9003 9001
9004 9004
9005 9005
9006 9006
9007 9007
9008 9008
9009 9009
9010 9011
9011 9011
9012 9011
9013 9014
9014 9014
9015 9015
9016 9016
9017 9017
9018 9035
9019 9035
9020 9035
9021 9035
9022 9035
9023 9035
9024 9025
9025 9025
9026 9026
9027 9027
9028 9028
9029 9030
9030 9030
Исходя из выше родительских отношений я хотел бы выход быть, как показано ниже (то есть список только те, где статья связана с более чем одним из родителей)
ArticleID publisherID
----------------------------
1001 9001 (9001 is parent of 9002, 9003)
1007 9011 (9011 is parent of 9010, 9012)
1008 9014
1012 9035
1013 9025
простой способ объяснить это то, что я пытаюсь выяснить, какие из статей все они связаны с тем же издателем (The издатель тот же, если у них один и тот же родитель).
Я знаю, как присоединиться к таблицам, но я недостаточно осведомлен, чтобы сделать рекурсивный поиск, в котором я боюсь.
Еще один вариант, который я попробовал, - это присоединиться к таблице с самим собой (предоставляя другой псевдоним) и делать, где a.parent = b.parent и b.rownum <> a.rownum, но я сомневаюсь, что это лучший способ сделать Это.
Заранее спасибо
Это может помочь http://stackoverflow.com/questions/4659803/ recursion-in-oracle – christiandev
'rownum' - это построенная на основе набора результатов и не может использоваться для однозначной идентификации строки. Использование этого в сравнении, как правило, плохая идея. – Allan