首先,我先说谢谢。我是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';