使用嵌套组的建议,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