mysql - SQL 将属性与同一表中另一行的属性进行比较

标签 mysql

假设我有一张人表,上面有他们的姓名和出生日期。 我如何才能选择所有具有比另一个人更大的 DofB 的人的名字,同时只知道那个人的名字而不是 DofB?

最佳答案

你有一些选择,但我喜欢这里的 JOIN。

假设您有一个唯一的名称字段(使用像 id 这样的唯一行标识符可能更好):

SELECT p.name
  FROM person p
  JOIN person po
    ON po.name = :name_that_you_know
 WHERE p.dob > po.dob

这个交叉 JOIN 将每个人的行与您命名的人的行相连接。 结果按出生日期比较过滤。

或者,您可以在 JOIN 条件中执行过滤器:

SELECT p.name
  FROM person p
  JOIN person po
    ON po.name = :name_that_you_know
   AND po.dob < p.dob

关于mysql - SQL 将属性与同一表中另一行的属性进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36766539/

相关文章:

mysql - 如何选择所有行 (*) 加上我选择的一些额外行

mysql - 查找至少参与过两个项目的所有员工

android - SimpleAdapter 每秒崩溃一次

MySQL将结果多个结果值合并为2只

php - Mysql查询按日期分隔的元素组

mysql - Rubys Yaml 问题

php - 如何根据数组值编写查询

php - 如何防止PHP中的SQL注入(inject)?

javascript - 如何将JSON解析后的数据插入MYSQL

PHP是否有数据库分类检索表