2012-08-30 3 views
0

우선, 나쁜 제목을 유감스럽게 생각합니다. 나는 조금 서두르고 더 나은 것을 생각할 수 없었다.MySQL- 동일한 테이블에서 여러 레코드를 가져 오는 중

category_id name  parent_category_id 
______________________________________ 
1    country  0 
2    state  1 
3    city  2 
4    block  3 

을 그리고 난 같은 결과를 원하는 - -

가 지금은 테이블이 같은이

Name  ParentCategory 
___________________________ 
country  NULL 
state  country 
city  state 
block  city 

것은 이제 논리는 ParentCategory 누구 CATEGORY_ID parent_category_id 같음 카테고리 이름입니다. (내가 적절하게 설명했는지 확실하지 않음)이 질문을 많이 쓰려고했지만 어떻게 할 수 있는지 모르겠습니다.

모든 도움을 주시면 감사하겠습니다.

답변

3

당신은 그 자체로 테이블을 조인합니다 :

SELECT child.name, parent.name FROM tbl AS child 
    LEFT JOIN tbl AS parent 
    ON (child.parent_category__id = parent.category_id); 
3
SELECT 
    child.name AS Name, 
    parent.name AS ParentCategory 
FROM 
    yourTableName AS child 
    LEFT JOIN yourTableName AS parent ON parent.category_id=child.parent_category_id 
-1
SELECT t1.name, t2.name FROM table as t1 LEFT JOIN table as t2 ON t1.parent_category_id=t2.category_id 
+0

왼쪽합니다 ((국가, NULL) 행 –

+0

이 하나를 표시하지 않음 대신 내부에 가입)? – lvil

1
SELECT c.name Name, 
     p.name ParentCategory 
FROM t c 
LEFT JOIN t p 
ON p.category_id=c.parent_category_id; 

See this SQLFiddle

관련 문제