不要从select?

时间:2015-09-02 21:11:27

标签: mysql select

首先,我要提前说谢谢。我是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

2 个答案:

答案 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';