OracleÖÐStart with...Connect ByÀí½â¼°Ó÷¨
oracleÖÐconnect by priorʵÏֵݹé²éѯ
ÊÕ¼¯µÄ¼¸ÌõÔÚoracleÖÐͨ¹ýconnect by priorÀ´ÊµÏֵݹé²éѯ
Start with...Connect By×Ó¾äµÝ¹é²éѯһ°ãÓÃÓÚÒ»¸ö±íά»¤Ê÷ÐνṹµÄÓ¦Óá£
´´½¨Ê¾Àý±í£º
CREATE TABLE TBL_TEST
(
ID NUMBER,
NAME VARCHAR2(100 BYTE),
PID NUMBER DEFAULT 0
);
²åÈë²âÊÔÊý¾Ý£º
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
´ÓRootÍùÊ÷Ä©Éҵݹé
select * from TBL_TEST
start with id=1
connect by prior id = pid
´ÓÄ©ÉÒÍùÊ÷ROOTµÝ¹é
select * from TBL_TEST
start with id=5
connect by prior pid = id
===============================================================================================================
ÓÐÒ»Õűí t
×ֶΣº
parent
child
Á½¸ö×ֶεĹØÏµÊǸ¸×Ó¹ØÏµ
дһ¸ösqlÓï¾ä£¬²éѯ³öÖ¸¶¨¸¸ÏÂÃæµÄËùÓеÄ×Ó
±ÈÈç
a b
a c
a e
b b1
b b2
c c1
e e1
e e3
d d1
Ö¸¶¨parent=a£¬Ñ¡³ö
a b
a c
a e
b b1
b b2
c c1
e e1
e e3
&
Ïà¹ØÎĵµ£º
for example:
15:18:59 SQL> create table t1 (a int, b int);
±íÒÑ´´½¨¡£
ÒÑÓÃʱ¼ä: 00: 00: 00.15
......
ת×ÔijµØ,¶Ô×÷ÕߺÜÀ¢¾Î- -!²»ÏþµÃµØÖ·ÁË..
ORACLE¶à±í²éѯÓÅ»¯
ÕâÀïÌṩµÄÊÇÖ´ÐÐÐÔÄܵÄÓÅ»¯,¶ø²»ÊǺǫ́Êý¾Ý¿âÓÅ»¯Æ÷×ÊÁÏ:
²Î¿¼Êý¾Ý¿â¿ª·¢ÐÔÄÜ·½ÃæµÄ¸÷ÖÖÎÊÌâ,ÊÕ¼¯ÁËһЩÓÅ»¯·½°¸Í³¼ÆÈçÏÂ(µ±È»,ÏóË÷ÒýµÈÓÅ»¯·½°¸Ì«¹ý¼òµ¥¾Í²»ÁÐÈëÁË,ºÙºÙ):
Ö´Ðз¾¶:ORACLEµÄÕâ¸ö¹¦ÄÜ´ó´óµØÌá¸ßÁËSQLµÄÖ´ÐÐÐÔÄܲ¢½ÚÊ¡ÁËÄÚ´æµÄʹÓÃ: ......
Ò»¡¢PL/SQL³öÏÖµÄÄ¿µÄ
¡¡¡¡½á¹¹»¯²éѯÓïÑÔ(Structured Query
Language£¬¼ò³ÆSQL)ÊÇÓÃÀ´·ÃÎʹØÏµÐÍÊý¾Ý¿âÒ»ÖÖͨÓÃÓïÑÔ£¬ËüÊôÓÚµÚËÄ´úÓïÑÔ£¨4GL£©£¬ÆäÖ´ÐÐÌØµãÊǷǹý³Ì»¯£¬¼´²»ÓÃÖ¸Ã÷Ö´ÐеľßÌå·½·¨ºÍ;
¾¶£¬¶øÊǼòµ¥µÄµ÷ÓÃÏàÓ¦Óï¾äÀ´Ö±½ÓÈ¡µÃ½á¹û¼´¿É¡£ÏÔÈ»£¬ÕâÖÖ²»¹Ø×¢ÈκÎʵÏÖϸ½ÚµÄÓïÑÔ¶ÔÓÚ¿ª·¢ÕßÀ´ËµÓÐ׿«´óµÄ ......
ÓкܶàÓ¦ÓÃÏîÄ¿, ¸ÕÆð²½µÄʱºòÓÃMYSQLÊý¾Ý¿â»ù±¾ÉÏÄÜʵÏÖ¸÷ÖÖ¹¦ÄÜÐèÇó£¬Ëæ×ÅÓ¦ÓÃÓû§µÄÔö¶à£¬Êý¾ÝÁ¿µÄÔö¼Ó£¬MYSQL½¥½¥µØ³öÏÖ²»¿°ÖظºµÄÇé¿ö£ºÁ¬½ÓºÜÂýÉõÖÁå´»ú£¬ÓÚÊǾÍÓаÑÊý¾Ý´ÓMYSQLǨµ½ORACLEµÄÐèÇó£¬Ó¦ÓóÌÐòÒ²ÒªÏàÓ¦×öһЩÐ޸ġ£±¾ÈË×ܽá³öÒÔϼ¸µã×¢ÒâÊÂÏϣÍû¶Ô´ó¼ÒÓÐËù°ïÖú¡£
1£® ×Ô¶¯Ôö³¤µÄÊý¾ ......