首先,我先说谢谢。我是mysql的新手,似乎找不到这个问题的答案。

我有一个小的查询,其中我对各个列进行选择。其中两列是不同的表,表示一个部门编号。当查询运行时,它返回部门编号的两个实例,但是我只想要一个。我一直在寻找有关如何控制它或是否可以控制它的信息。

这是我的查询:

SELECT d.dept_no, e.emp_no, e.first_name, e.last_name, f.dept_no
FROM departments d, employees e, dept_emp f
WHERE d.dept_no = f.dept_no AND e.emp_no = f.emp_no AND d.dept_no = 'd009' AND e.gender = 'F';


以下是一些结果:

dept_no emp_no  first_name  last_name   dept_no
d009    10011   Mary    Sluis   d009
d009    10049   Basil   Tramer  d009
d009    10088   Jungsoon    Syrzycki    d009
d009    10098   Sreekrishna Servieres   d009
d009    10112   Yuichiro    Swick   d009
d009    10128   Babette Lamba   d009
d009    10154   Abdulah Thibadeau   d009

最佳答案

从您的select子句(OR)中删除特定的列,请使用列别名,以实现更好的可重复性,如下所示。还要注意,我已经修改了查询以使用显式联接语法,而不是旧式隐式联接语法。

SELECT d.dept_no as Department_dept_no,
e.emp_no,
e.first_name,
e.last_name,
f.dept_no as dept_emp_deptno
FROM departments d
JOIN dept_emp f ON d.dept_no = f.dept_no
JOIN employees e ON e.emp_no = f.emp_no
WHERE d.dept_no = 'd009'
AND e.gender = 'F';

10-08 14:27