2012-05-10 2 views
0

테이블 "트리"가 있습니다.MySQL 복수 횟수 및 가입

쿼리가 있습니다 : SELECT * FROM 트리 WHERE 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으로 변경) 작동했습니다. 내 테이블도 pyd – amaters

+0

의 깊이를 알 수 없는데 어떻게이 쿼리가 트리를 재귀 적으로 트래버스 (traverse) 할 것인가? 추신 : 나는 '어디서'가 잘못된 장소에 있으며 그 곳에서 'COUNT (t2)'가 오류 – zerkms