2014-10-23 2 views
0

이것은 이전에 요청 받았지만 제대로 검색하지 못했을 것입니다. 나는이 같은 테이블이 있습니다MySQL은 하나의 값이 다른 열에있는 행을 반환합니다.

SITE  STATUS  NEXT_SITE 
chicago  good   cleveland 
pittsburgh bad   philadelphia 
cleveland bad   columbus 
columbus good   pittsburgh 
pittsburgh bad   chicago 

내가하고 싶은 것은 NEXT_SITE 실제로 사이트의 어딘가에 존재하는 행을 선택하는 것입니다. 따라서 philadelphia는 SITE 열의 어느 곳에도 존재하지 않으므로 내 쿼리는 두 번째 행을 반환하지 않습니다.

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

답변

2
select * from your_table 
where next_site in 
(
    select distinct site from your_table 
) 
1

자체에 가입 할 수 있습니다. next_site = site에 가입하면 일치하는 값만 반환되므로 사이트에 next_site가있는 값만 반환됩니다.

select distinct t1.next_site 
from your_table t1 
join your_table t2 on t1.next_site = t2.site; 
관련 문제