首先,我是新来的,刚学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 别名或任何最简单的方法在单个语句中执行此操作?
请注意,创建的最终表可能包含与我指定的候选者不同的行,即排名、标记变量最初是根据候选者选择的,但一旦选择,它们可能包含任何候选值。
最佳答案
我相信应该这样做:
select
v1.*
from
voting v1 inner join
voting v2
on v1.token = v2.token and
v2.candidate = $mycandidate and
v1.rank > v2.rank
EDIT 将 SELECT *
更改为 SELECT v1.*
关于php - 如何使用 AS 别名执行复杂查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9649997/