让我们说我有一张名字和出生日期的人。 我如何选择所有人的DofB比其他人更多,而只知道人名而不是DofB?
答案 0 :(得分: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 :(得分:1)
使用像
这样的简单mysql查询 SELECT a.name, b.dob FROM table a INNER JOIN table b ON b.name = 'john' AND a.dob > b.dob
像这样的东西
答案 2 :(得分:1)
这会发现所有人的DOB都比你不确定他们的DOB的人更多(或更年轻),但知道他们的名字:
SELECT name
FROM yourTable
WHERE DOB > (SELECT DOB FROM yourTable WHERE name = 'nameyouknow');