多列中具有相同值的行

多列中具有相同值的行

我需要一个查询,其中将显示以下行:

first_name   last_name     dept_no  hire_date   from_date
----------------------------------------------------------
Jianwen       Schiper       d004    1986-10-17  1986-10-17
Sanjiv        Zschoche      d004    1986-10-17  1986-10-17
Moty          Winter        d004    1991-04-28  1991-04-28
Zhilian       Ranst         d004    1991-04-28  1991-04-28
Jaewoo        Yoshimura     d004    1991-04-28  1991-04-28
Herbert       Zizka         d005    1985-03-21  1985-03-21
Arno          Luke          d005    1985-03-21  1985-03-21
Muzhong       Shokrollahi   d007    1985-09-05  1985-09-05
Isaac         Bael          d007    1985-09-05  1985-09-05
Mani          Cannata       d007    1989-06-21  1989-06-21
Lidong        Tomescu       d007    1989-06-21  1989-06-21
Taizo         Kitsuregawa   d007    1991-09-03  1991-09-03
Bodo          Tagansky      d007    1991-09-03  1991-09-03


简而言之,我需要在同一日期被同一部门雇用的员工。
以下查询为我提供了他们的第一部门及其雇用日期的雇员:

select first_name, last_name, dept_no, hire_date, from_date
from employees join dept_emp using(emp_no)
where hire_date = from_date
order by hire_date, dept_no


我需要将在同一日期被同一部门录用的那些人分开。我尝试了太多查询,但无法获得所需的信息。
在此先感谢您的帮助,对不起,英语不好。

最佳答案

如果您只想查看一起雇用的员工,则可以订购结果:

select first_name, last_name, dept_no, hire_date, from_date
from employees join
     dept_emp
     using (emp_no)
order by dept_no, hire_date;


如果您希望至少雇用两名员工的日期(以及该日期的员工):

select first_name, last_name, dept_no, hire_date, from_date
from employees e join
     dept_emp d
     using (emp_no)
where exists (select 1
              from employees e2
              where e2.dept_no = e.dept_no and
                    e2.hire_date = e.hire_date and
                    e2.emp_no <> e.emp_no
             )
order by dept_no, hire_date;

关于mysql - MySQL-多列中具有相同值的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41612838/

10-13 02:08