【发布时间】:2016-04-21 10:14:47
【问题描述】:
假设我有一张包含姓名和出生日期的人的表格。 如何在只知道那个人的名字而不知道 DofB 的情况下选择所有具有比另一个人更大的 DofB 的人的名字?
【问题讨论】:
-
提供样本数据和输出
-
你试过了吗?
-
@Kobi 我不确定语法,这就是我要问的原因
标签: mysql
假设我有一张包含姓名和出生日期的人的表格。 如何在只知道那个人的名字而不知道 DofB 的情况下选择所有具有比另一个人更大的 DofB 的人的名字?
【问题讨论】:
标签: mysql
你有一些选择,但我喜欢这里的 JOIN。
假设您有一个唯一的名称字段(使用像 id 这样的唯一行标识符可能更好):
SELECT p.name
FROM person p
JOIN person po
ON po.name = :name_that_you_know
WHERE p.dob > po.dob
此交叉连接每个人行与您命名的人所在的行。 结果按出生日期比较过滤。
您也可以在 JOIN 条件下执行过滤:
SELECT p.name
FROM person p
JOIN person po
ON po.name = :name_that_you_know
AND po.dob < p.dob
【讨论】:
这将找到所有 DOB 大于(或小于)您不确定 DOB 但知道其姓名的人的人:
SELECT name
FROM yourTable
WHERE DOB > (SELECT DOB FROM yourTable WHERE name = 'nameyouknow');
【讨论】:
使用简单的 mysql 查询,例如
SELECT a.name, b.dob FROM table a INNER JOIN table b ON b.name = 'john' AND a.dob > b.dob
类似的东西
【讨论】: