如何使用AS别名执行复杂查询

时间:2012-03-10 20:39:35

标签: php mysql

首先,我是新来的,只是学习sql,所以请耐心等待。

我有一个简单的问题。假设我有一个名为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 个答案:

答案 0 :(得分: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.*