为什么自连接的WHERE语句中的字段名称在Oracle中相反?

时间:2011-10-13 23:18:26

标签: oracle oracle11g where self-join

我编写了一个WHERE语句,该语句在一个顺序中使用列名,但不是以相反的顺序。我不知道为什么,如果有人可以解释,我很好奇。

以下代码有效。当我有WHERE e.emp_num = m.emp_manager时,代码不起作用。

    SELECT DECODE (e.emp_initial,null, e.emp_fname||' '|| e.emp_lname,
         e.emp_fname ||' '|| e.emp_initial ||'. '|| e.emp_lname) AS Employee,
         m.emp_fname ||' '|| m.emp_lname AS Manager
    FROM hartmar.employee e,
         hartmar.employee m
    WHERE e.emp_manager = m.emp_num
    ORDER BY e.emp_lname, e.emp_fname, e.emp_initial

1 个答案:

答案 0 :(得分:0)

交换列时还需要交换表别名..

SELECT列表中的所有列都需要与您希望成为经理与员工的表格相对应(例如姓名)。

换掉所有这些。在开始时也是为了得到正确的结果。