MySQL Connect By 的基本结构是:
SELECT ... FROM table WHERE condition START WITHroot_expressionCONNECT BYcondition
其中,root_expression 指定了树形结构的根节点,而 condition 指定了如何连接子节点和父节点。使用这种语法,大家可以轻松地查询整个树形结构,以及任意节点及其子节点。
一个例子:
SELECT empName, mgrName FROM employees, ( SELECT empID AS mgrID, empName AS mgrName FROM employees ) mgr WHERE employees.mgrID = mgr.mgrID (+) START WITH empID = 1 CONNECT BY PRIOR empID = mgrID
这个查询返回的结果类似于这样:
EMPNAME MGRNAME --------- --------- JIM NULL BOB JIM JANE BOB
其中,JIM 是根节点,BOB 和 JANE 是它的两个子节点。注意到 SELECT 语句中包含了一个自偶链接 (WHERE employees.mgrID = mgr.mgrID (+)) 以及一个开始节点 (START WITH empID = 1) 和递归条件 (CONNECT BY PRIOR empID = mgrID)。