如何使用DISTINCT仅输出同名两人的姓名,同时校验出生日期?SQL
解决方案
要实现仅输出同名且出生日期不同的两名人员的姓名(并使用DISTINCT关键字),可以通过以下方式调整SQL语句:
方法1:自连接结合DISTINCT
SELECT DISTINCT p1.name FROM people p1 JOIN people p2 ON p1.name = p2.name AND p1.birth != p2.birth WHERE p1.name = "x";
方法2:EXISTS子查询结合DISTINCT
SELECT DISTINCT name FROM people WHERE name = "x" AND EXISTS ( SELECT 1 FROM people p2 WHERE p2.name = people.name AND p2.birth != people.birth );
说明
- 原语句
SELECT DISTINCT name, birth会返回姓名+出生日期的唯一组合,因此会显示出生日期,不符合需求。 - 上述两种方法都通过校验存在另一个同名但出生日期不同的记录,确保输出的姓名对应至少两名不同的人员,同时仅返回姓名字段,并使用DISTINCT关键字避免重复输出姓名(即使有更多同名人员也只会显示一次)。
内容的提问来源于stack exchange,提问作者DumbDumbie
相关产品推荐
相关产品推荐

