2012-03-10 88 views
1

首先要進行復雜的查詢,我是新來的,剛開始學習SQL,所以大家多多包涵。如何使用AS別名

我有一個簡單的問題。比方說,我有一個表叫voting有以下欄目:

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

..我要像執行查詢:

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

..其中t1

SELECT rank,token 
    FROM voting 
    WHERE candidate = $mycandidate 

我如何在一個使用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 *SELECT v1.*

+0

其實令牌列包含有不同的候選variables.So,你想方法我以前不重複數據在這裏工作,因爲我想與其他候選人讀取行太 – rockstarjindal 2012-03-10 20:59:40

+0

最後一次編輯後,它正在now.It實際上比我thought.Thanks簡單得多.................. ........ – rockstarjindal 2012-03-11 05:30:20

+0

什麼是「想要的方法」? – Leigh 2012-03-11 19:46:25