假设我有一张人表,上面有他们的姓名和出生日期。 我如何才能选择所有具有比另一个人更大的 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/