테이블 컬럼
no int
lft int
rgt int
가 있을경우에
no = 2 인값의 lft, rgt 값을 가져와서
lft 보다 크고 rgt 보다 작은 값을 가져올려면 어떻게 해야하나요?
SELECT * FROM 테이블 WHERE lft > ( SELECT lft FROM 테이블 WHERE no = 2 ) AND rgt < (SELECT rgt FROM 테이블 WHERE no = 2)
말고는 다른방법이 없나요?
서브쿼리 두번 쓰는것보다는 변수에 담아서 넣고 싶어요
셀프 조인을 사용하시면 됩니다.
select b.*
from 테이블 a, 테이블 b
where a.no=2
and b.lft > a.lft
and b.rgt < a.rgt
이런식입니다.