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

标签 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 别名或任何最简单的方法在单个语句中执行此操作?

请注意,创建的最终表可能包含与我指定的候选者不同的行,即排名、标记变量最初是根据候选者选择的,但一旦选择,它们可能包含任何候选值。

最佳答案

我相信应该这样做:

 select
    v1.*
 from
    voting v1 inner join
    voting v2
        on v1.token = v2.token and
           v2.candidate = $mycandidate and
           v1.rank > v2.rank

EDITSELECT * 更改为 SELECT v1.*

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

相关文章:

php - 创建登录表单错误消息(php、css、html)

javascript - 尝试让验证码与我的验证一起工作

mysql - 查找时间字段在最近 24 小时内的记录

java - Hibernate 只返回一个结果(更改表名后)

mysql - 每个类别的php-sql限制查询

mysql - 用于数据库备份的 Linux shell 脚本

php - 使用 POST 方法在 2 个 php 之间传递变量

php 希腊字符编码

php - Google Maps API v3的服务器端集群

mysql - 关系数据库 - 设计领域的更好选择