首先,我是新来的,只是学习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别名或任何最简单的方法在单个语句中执行此操作?
请注意,创建的最终表格可能包含与我指定的候选人不同的行,即排名,令牌变量最初根据候选人选择,但一旦选择,他们可能包含任何候选值。
答案 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.*