SQL将属性与同一个表中的另一行属性进行比较
答
你有一些选择,但我喜欢这里的联接。
假设你有一个唯一的名称字段(使用类似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
答
使用简单的MySQL查询像
SELECT a.name, b.dob FROM table a INNER JOIN table b ON b.name = 'john' AND a.dob > b.dob
类似的东西
+0
我不知道出生日期,我只知道这个人的名字。 – Rizhiy
答
这将找到一个DOB比你一个人不知道自己的出生日期的更大(或以下)所有的人,但知道他们的名称:
SELECT name
FROM yourTable
WHERE DOB > (SELECT DOB FROM yourTable WHERE name = 'nameyouknow');
提供样品数据和输出 –
您尝试过什么吗? – Kobi
@Kobi我不确定这是为什么我要求的语法 – Rizhiy