2011-05-18 50 views
0

我一直在工作与Joomla 1.6,我需要使用一个表的同一列两次:动态创建行的MySql

有类别,每个类别可以有子类别。

另一个表

我有指向类的ID,所以后来我创建一个连接与“标题”(类别的描述)

更换ID比方说,我有这样几种:

- PARENT1 
    * SUB1 
    * SUB2 

- PARENT2 
    * SUB1 
    * SUB2 

TABLE CATEGORIES: 
    id  |  title  |  parent_id  
-------------------------------------------- 
    0  |  ROOT  |  NULL 
    1  |  PARENT1 |   0 
    2  |  SUB1  |   1 
    3  |  SUB2  |   1 
    4  |  PARENT2 |   0 
    5  |  SUB1  |   4 
    6  |  SUB2  |   4 
-------------------------------------------- 

TABLE DATA: 
    id  |  name  |  cat_id 
-------------------------------------------- 
    0  | p1_sub1 |   2 
    1  | p1_sub1 |   2 
    2  | p1_sub2 |   3 
    3  | p2_sub1 |   5 
    4  | p2_sub2 |   6 
    5  | p1_sub2 |   3 
    6  | p2_sub2 |   6 
-------------------------------------------- 

,所以我用这个查询得到的CAT_ID相应标题:

SELECT data.name, cat.title FROM table_data AS data 
LEFT JOIN table_categories AS cat ON data.cat_id = cat.id 

能正常工作,但现在我也想获得titleparent category

TABLE RESULT: 
    name |  title  |  parent_title  
-------------------------------------------- 
    p1_sub1 |  SUB1  |  :S 
-------------------------------------------- 

我的意思是,要做到这一点,我应该再拍加入cat.parent_id = cat.id,但我需要另一个title列添加到查询,以便...

任何想法????

THNX !!!

回答

0

这应该工作:

SELECT data.name AS name, cat.title AS title, cat2.title AS parent_title 
FROM table_data AS data 
     LEFT JOIN table_categories AS cat ON data.cat_id = cat.id 
     LEFT JOIN table_categories AS cat2 ON cat.parent_id = cat2.id 
+0

我来试试!TY! – 2011-05-18 16:19:42