2014-12-15 2 views
0

두 개의 테이블이 있습니다.Select In 질의 where where racle에서 주문하는 방법

이것은 내 첫 번째 쿼리입니다

select teacher_id from teacher a , stats s where s.type=25 and a.teacher_id=s.teacherP_id order by s.count desc; 

내 두 번째 쿼리, 내가 첫 번째 쿼리를 사용하는 경우, 내가 선생님 테이블을 취할 수

최대 절전 모드 사용하고

내 자바 클래스에서
select *from teacher where teacher_id IN (select teacherP_id from stats where type = 25); 

coz 나는 select *를 사용하는 경우 teacher_id를 재계약 할뿐입니다. 통계 및 교사의 모든 입력란을 가져옵니다.

두 번째 쿼리를 사용하는 경우 카운트 필드로 정렬 할 수 없습니다.

선생님의 모든 입력란에 하나의 검색어 만 입력하고 통계 개수 필드에 따라 주문하려면 어떻게해야합니까?

답변

1

첫째, 당신은 명시 적 join 구문을 배워야한다. SQL을 배우는 경우 간단한 규칙 : from 절에 쉼표를 사용하지 마십시오.

두 번째로 <table alias>.*을 사용하여 표의 모든 열을 선택할 수 있습니다. 원하는 쿼리는 다음과 같습니다.

select t.* 
from teacher t join 
    stats s 
    on t.teach_id = s.teacherP_id 
where s.type = 25 
order by s.count desc; 
+0

고든을 도와 주셔서 감사합니다. 테이블 별칭으로 무엇을 의미합니까? – user3647419

+0

't'와's'는 테이블 별칭입니다. 이것은 종종 필요할 때 사용할 수있는 테이블에 사용되는 약어로, 쿼리 작성 및 읽기가 쉬워 지도록하는 데 일반적으로 유용합니다. –

2

시도하십시오, 당신은 할 수 다음 쿼리 경우 :

select a.* from teacher a , stats s where s.type=25 and a.teacher_id=s.teacherP_id order by s.count desc;