sql - 查询以查找具有相同生日的员工对

标签 sql

我有一张表 EMPLOYEE 有 100 个人。我想编写一个查询来查找具有相同生日的成对员工。

结果应该为该对中的每个员工返回 EMPNO、LASTNAME 和 BIRTHDATE(一个 6 列结果表)。

我是这么想的

SELECT  t1.EmpNo
       ,t1.LastName
       ,t1.BirthDate
        ,t2.EmpNo
        ,t2.LastName
        ,t2.BirthDate
  FROM Employee t1
  INNER JOIN (
  SELECT EmpNo
        ,LastName
        ,BirthDate
  FROM Employee ) t2 ON t2.BirthDate = t1.BirthDate 
  WHERE t2.EmpNo != t1.EmpNo

你觉得对吗?

最佳答案

我会这样做:

SELECT t1.EmpNo, 
       t1.LastName, 
       t1.BirthDate, 
       t2.EmpNo, 
       t2.LastName, 
       t2.Birthdate
FROM Employee t1, Employee t2
WHERE t1.BirthDate = t2.Birthdate
AND t1.EmpNo <> t2.EmpNo

关于sql - 查询以查找具有相同生日的员工对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027194/

相关文章:

mysql - 根据具有同义行的标签表选择项目

sql - 插入触发器上不存在 Postgres 错误关系 "new"

mysql - 通过 SQL 中的另一个列值更新列值

sql - 我可以在 T-SQL 中使用什么来进行无操作?

mysql - 如何从相同的两个表运行两个 LEFT 连接,但连接到这些表中的不同字段

逗号分隔列表的Mysql WHERE问题

MySQL 连接帖子、用户信息和评级的三个表

sql - AWS RDS PostgreSQL 错误 "remaining connection slots are reserved for non-replication superuser connections"

sql - 如何判断在经典 ASP 中使用 ADO 调用 SQL Execute() 是否失败

java - java连接数据库的驱动