2011-01-06 35 views
0

有格蘭follwoing查詢這是罰款和花花公子......嵌套數據選擇父節點設置

SELECT 
    `node`.`site_pages_id` AS `page_id` , 
    GROUP_CONCAT(`parent`.`site_pages_id` SEPARATOR '/') AS `path` , 
    IFNULL(CONCAT('/' , GROUP_CONCAT(`parent`.`url` SEPARATOR '/')) , '/') AS `url` 
FROM 
    `site_pages` AS `node` 
LEFT JOIN 
    `site_pages` AS `parent` 
ON 
    `node`.`lft_limit` BETWEEN `parent`.`lft_limit` AND `parent`.`rgt_limit` 
GROUP BY 
    `node`.`site_pages_id` 
ORDER BY 
    `node`.`lft_limit` ASC 

產生以下

1, 1, /
2, 1/2, /about-us 
8, 1/2/8, /about-us/meet-the-team 
3, 1/3, /web 
5, 1/5, /print 
6, 1/6, /branding 
7, 1/7, /contact-us 

所有甜蜜。

我想選擇每個節點的直接父節點和直接父節點。

我這樣做沒有一個討厭的子查詢的微弱嘗試失敗了(TBO沒有太多更好的)。

提示長久地感謝

+1

能夠提供預期輸出的一些樣品? – ajreal 2011-01-06 15:33:07

回答

0

沒有probs馬丁......

page_id url   lft_limit rgt_limit 
1,  NULL,   1,   14, 
2,  about-us,  2,   5, 
3,  web,   6,   7, 
5,  print,   8,   9, 
6,  branding,  10,   11, 
7,  contact-us, 12,   13, 
8,  meet-the-team, 3,   4,