2016-04-21 117 views

回答

2

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

假设你有一个唯一的名称字段(使用类似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 
1

使用简单的MySQL查询像

SELECT a.name, b.dob FROM table a INNER JOIN table b ON b.name = 'john' AND a.dob > b.dob

类似的东西

+0

我不知道出生日期,我只知道这个人的名字。 – Rizhiy

1

这将找到一个DOB比你一个人不知道自己的出生日期的更大(或以下)所有的人,但知道他们的名称:

SELECT name 
FROM yourTable 
WHERE DOB > (SELECT DOB FROM yourTable WHERE name = 'nameyouknow'); 
相关问题