首先,我是新来的,只是学习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

如何在用作别名的单个语句中执行此操作,或使用最简单的方法?
请注意,创建的最终表可能有与我指定的候选行不同的行,即排名、标记变量最初是根据候选行选择的,但一旦选择,它们可能包含任何候选值。

最佳答案

我相信这样的事情应该可以做到:

 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.*

关于php - 如何使用AS别名执行复杂的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9649997/

10-14 05:18