2014-02-06 92 views
0

希望您能幫我找出一個好的解決方案。 我必須建立文件夾樹,首先從MYSQL表中檢索數據。我的表的簡化結構,稱爲categories是:將列與其他列中的多個值進行比較

id parent_id name 
1 0   jackets 
2 0   sweaters 
3 1   men 
4 1   woomen 
5 0   trousers 
6 5   children 

要正確地構建它(JavaScript的,樣式)我已經確定,當前類別是否已經或沒有子女,通過與價值觀比較列「身份證」的價值來自列'parent_id'的所有行,所以應該有動態列has_children。

輸出必須是這樣的:

id parent_id name  has_children 
1 0   jackets true 
2 0   sweaters false 
3 1   men  false 
4 1   woomen false 
5 0   trousers true 
6 5   children false 
+0

請注意,按照慣例,我們使用NULL而不是0來表示孤兒。 – Strawberry

+0

如果是這樣,我必須將列的類型從int()更改爲字符串。考慮到它包含的ID是數字,它是正確的嗎?儘管如此,這不是什麼大不了的事,尤其是與我的主要問題相比,價值) – Erik

+0

呃,不,你不! – Strawberry

回答

0

您可以添加一個選擇,這樣你可以有一個T/F標誌。

SELECT 
    p.id, p.nParentID,p.sTitle, 
    (SELECT COUNT(*) FROM pub.category c WHERE c.nParentId = p.id) AS nChildrenCount, 
    IF (SELECT COUNT(*) FROM pub.category c WHERE c.nParentId = p.id) , true, false) AS bHasChildren 
FROM pub.category p 

我已經包括一個計數以及清晰度。但是,如果您嘗試製作級聯菜單,則會發現此標誌可能非常方便,但您確實需要使用ui側/中間件方遞歸函數將菜單構建爲您的漂亮關係對象。該標誌可以被遞歸菜單構建器使用。

+0

葉,非常感謝!這完全是我想要的。 – Erik

+0

我在每個類別中肯定不會超過1個孩子級別,所以我不想在沒有真正需要的情況下過度複雜化。 – Erik

相關問題