2012-03-10 81 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