2012-03-10 4 views
1

우선, 여기 새로 왔으며 SQL을 배우므로 나와 함께하시기 바랍니다.AS 별칭을 사용하여 복잡한 쿼리를 수행하는 방법

나는 간단한 질문이 있습니다. ..

id, token(int), candidate(int), rank(int) 

와 나는 같은 쿼리를 수행 할 :이 전 테이블은 다음 열 voting라는 있다고 가정 해 봅시다 t1

SELECT rank,token 
    FROM voting 
    WHERE candidate = $mycandidate 

입니다

SELECT * 
    FROM voting 
    WHERE rank > t1.rank 
    AND token = t1.token 

.. AS 별명을 사용하여 단일 명령문에서이를 수행하거나 가장 간단한 방법은 무엇입니까?

만들어진 최종 표에는 내가 지정한 것과 다른 후보가있는 행이있을 수 있습니다. 즉, 토큰 변수는 처음에는 후보자에 따라 선택되지만 일단 선택하면 해당 후보 값이 포함될 수 있습니다.

이 같은

답변

1

뭔가해야 , 나는 생각 :

select 
    v1.* 
from 
    voting v1 inner join 
    voting v2 
     on v1.token = v2.token and 
      v2.candidate = $mycandidate and 
      v1.rank > v2.rank 

편집SELECT v1.*

+0

SELECT *을 변경 사실 토큰 열이 다른 후보 variables.So, 당신 싶어 방법 did't와 중복 된 데이터를 포함 다른 후보들과 함께 행을 가져오고 싶으므로 여기에서 일하십시오 – rockstarjindal

+0

마지막 편집 후 지금 작업 중입니다. 실제로 생각했던 것보다 훨씬 간단합니다. 감사합니다 .................. ........ – rockstarjindal

+0

"원하는 방법"은 무엇입니까? – Leigh

관련 문제