2012-05-10 54 views
0

我有表「樹」。Mysql多個COUNT並加入

我有疑問:SELECT * FROMWHERE pid =10 此查詢返回10個項目。

我想要得到的東西一樣,在結果:

id | pid | title | subElements 
11 | 10 | t 1 | 12 
12 | 10 | t 2 | 16 
13 | 10 | t 3 | 0 
... 

怎麼過建立連接查詢計數此10個項目分項目?

+0

這是不可能在一個查詢 – zerkms

+0

好了,但我是多麼的查詢需要做的就是子元素的計數這10個項目? – Mirgorod

+0

這取決於深度 – zerkms

回答

1

試試這個:

SELECT t1.id, t1.pid, t1.title , count(t2) as subElements FROM tree as t1 
LEFT JOIN tree as t2 ON t2.pid = t1.id 
WHERE t1.pid=10 
GROUP BY t1.id, t1.pid, t1.title 
+0

這是一個深度未知的樹結構 – zerkms

+0

我試了一下我的一張桌子(改變了INNER JOIN到LEFT JOIN),它工作。我的表還有未知深度的pid – amaters

+0

以及該查詢應如何執行遞歸遍歷樹? PS:我甚至沒有提到'WHERE'在錯誤的地方,並且'COUNT(t2)'會導致錯誤 – zerkms