使用嵌套組的建議,user349433我能想出這個查詢
SELECT c1.id AS id1, c1.category AS name1, c2.id AS id2, c2.category AS name2, c3.id AS id3, c3.category AS name3, c4.id AS id4, c4.category AS name4, c5.id AS id5, c5.category AS name5
FROM category c1
LEFT JOIN category AS c2 ON c2.parentid = c1.id
LEFT JOIN category AS c3 ON c3.parentid = c2.id
LEFT JOIN category AS c4 ON c4.parentid = c3.id
LEFT JOIN category AS c5 ON c5.parentid = c4.id
我的數據從來沒有去深度超過5級(我用C6和獲取零點檢查驗證)。從這裏我可以查詢此
SELECT (name1 + '/' + name2 + '/' + name3 + '/' + name4 + '/' + name5) AS category
FROM getCats
WHERE
<cfloop query="Arguments.assignments">
(id1 = #Arguments.assignments.categoryid# OR id2 = #Arguments.assignments.categoryid# OR id3 = #Arguments.assignments.categoryid# OR id4 = #Arguments.assignments.categoryid# OR id5 = #Arguments.assignments.categoryid#)
<cfif Arguments.assignments.currentrow IS NOT Arguments.assignments.recordCount> OR </cfif>
</cfloop>
我已經有產品及其類別ID的查詢循環。
調查此問題 - http://stackoverflow.com/questions/4048151/what-are-the-options-for-storing-hierarchical-data-in-a-relational-database - 特別是MySQL會話變量 - 和GROUP_CONCAT ():http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat – orangepips 2011-06-14 01:34:20
+1。非常徹底的線程。只是好奇 - 爲什麼「評論」與「答案」? – Leigh 2011-06-14 03:56:24
@Leigh:如果可能的話,我喜歡我的答案來真正解決問題。在這種情況下,我想包括確切的SQL來實現它,但是由於我沒有在任何地方設置MySQL,我決定提供一個應該導致答案的指針。如果OP認爲它值得作爲答案,我會發布這樣的要點:)。 – orangepips 2011-06-14 13:36:47