2013-03-09 3 views

답변

2

이 수 :

그래서 나는
  • 그래서 내가 이런 일을하고 싶지 pages.parent_id

    • pages.page_id와 표준 테이블이 단순히 JOIN을 사용하여 해결하십시오. 결과 목록이 고유하도록 DISTINCT 키워드가 SELECT 문에 사용되었습니다. 다음과 같이

      SELECT DISTINCT a.* 
      FROM pages a 
           INNER JOIN pages b 
            ON a.page_id = b.parent_id 
      
    +1

    +1, 깨끗하고 정밀합니다. – Perception

    1

    당신은 자녀가있는 모든 페이지의 목록을 얻을 수 있습니다 :

    select distinct(parent_id) from pages; 
    
    그런 다음 부모 페이지 얻을이 부모 ID를 사용할 수

    :

    select * from pages, 
          (select distinct(parent_id) as parent from pages) as parents 
        where pages.page_id = parents.parent; 
    
    0

    확실하지 않음을 thx 구문이 완전히 정확하면 다음과 같이 입력하면됩니다.

    select * from pages where page_id not in 
    (select page_id from pages where parent_id is not null) 
    
    1

    아이들이 그들을 가리키는이 페이지를 찾을 수 있습니다 : 모든 아이들이 NOT EXISTSEXISTS을 변경하지 않고

    SELECT * 
    FROM pages p 
    WHERE EXISTS(
        SELECT * 
        FROM pages xx WHERE xx.parent_id = p.page_id 
    ); 
    

    는 페이지를 찾을 수 있습니다.

    0

    페이지의 ID 만 있으면 테이블을 자체 조인 할 필요가 없습니다. 단순히 parent_id 열의 값을 검색 할 수 있습니다. SQL은 다음과 같습니다.

    SELECT DISTINCT parent_id 
    FROM pages 
    WHERE parent_id IS NOT NULL