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