2013-04-25 124 views
0

任何帮助将是惊人的。目前有以下MySQL查询:PHP MySQL层次结构数据group_concat

SELECT 
    GROUP_CONCAT(sp.`slug` SEPARATOR '/') 
FROM 
    `category` sn, `category` sp 
WHERE 
    sn.lft BETWEEN sp.`lft` AND sp.`rgt` 
    AND sn.`id` =3 
ORDER BY 
    sp.`lft` ASC; 

没有GROUP_CONCAT函数,此方法返回正确的顺序所期望的结果。一旦我申请group_contact,订单就会被混淆并且不正确。有谁知道如何重写查询给我所需的连接结果和正确的顺序?

我在这方面的损失。在旁注中,有人知道如何使用“内部连接”语句重写它,而不是相互引用的两个表名,因为我不明白它如何连接两个表。

回答

0

试试这个:

SELECT 
    GROUP_CONCAT(sp.`slug` ORDER BY sp.`lft` ASC SEPARATOR '/') 
FROM 
    `category` sn, 
INNER JOIN `category` sp 
    ON sn.lft BETWEEN sp.`lft` AND sp.`rgt` 
WHERE  
    sn.`id` =3 
+0

这是完全谢谢:) – Adam 2013-04-25 11:30:33

+0

很高兴我能帮助:) – Stephan 2013-04-25 11:42:59