2013-11-14 65 views
-2

我有兩個表category和category_description。帶列嵌套集模型MySQL

`category` (
    `category_id`, 
    `image` , 
    `parent_id` , 
    `sort_order`, 
    `status` , 
    `created`, 
    `modified`, 
    PRIMARY KEY (`category_id`) 
) 

`category_description` (
    `category_id`, 
    `name` , 
    `description`, 
    `meta_description`, 
    `seo_keyword`, 
    PRIMARY KEY (`category_id`), 
    UNIQUE KEY `name` (`name`) 
) 

插入類別表後,獲取最後的category_id並將其插入到category_description表中。我的問題是如何與parnet和孩子的名字中選擇類別,像這樣顯示

如果類有一個孩子,應該顯示這個「PARENT_NAME> CHILD_NAME」 如果不能顯示此「PARENT_NAME」

+0

爲什麼你有兩個表?它們的關係是1:1,因此可以將數據合併到一個表中。 – morgoth84

+0

這不是一個嵌套集合模型。另外,你不想要一個簡單的自我加入?你有什麼疑問? – AgRizzo

+0

它是OpenCart電子商務解決方案嗎? –

回答

0

運行此(它假定父類別的parent_id列中有NULL):

SELECT CONCAT(parent_description.name, 
       COALESCE(CONCAT(' > ', child_description.name) 
         ,'') 
      ) AS display_this 
FROM category AS parent 
JOIN category_description AS parent_description 
    ON parent.category_id = parent_description.category_id 
LEFT JOIN category AS child 
    ON parent.category_id = child.parent_id 
LEFT JOIN category_description AS child_description 
    ON child.category_id = child_description.category_id 
WHERE parent.parent_id IS NULL