首先,我要提前说谢谢。我是mysql的新手,似乎找不到这个问题的答案。
我有一个小查询,我在其中发出带有各种列的选择。其中两列是不同的表,表示一个部门编号。当查询运行时,它返回dept数的两个实例,但我只想要一个。我一直在寻找有关如何控制它或我是否可以控制它的信息。
这是我的疑问:
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
答案 0 :(得分:0)
删除你不想要的那个。
示例
SELECT d.dept_no, e.emp_no, e.first_name, e.last_name
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';
您无需选择要用于比较的列。
答案 1 :(得分:0)
从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';