在EMPLOYEES 和DEPARTMENTS表里检查下列数据。
EMPLOYEES
LAST_NAME DEPARTMENT_ID SALARY
Getz 10 3000
Davis 20 1500
King 20 2200
Davis 30 5000
Kochhar 5000
DEPARTMENT_ID DEPARTMENT_NAME
10 Sales
20 Marketing
30 Accounts
40 Administration
如果你想获得所有的employees的last_name,department_name,不管他们是否匹配部门表中的部门,那么下面的查询语句正确的是()
A.SELECT last_name,department_name FROM employees e JOIN departments d ON e.department_id(+) = d.department_id;
B.SELECT last_name,department_name FROM employees e RIGHT OUTER JOIN departments d ON e.department_id = d.department_id;
C.SELECT last_name,department_name FROM employees e, departments d WHERE e.department_id = d.department_id (+)
D.SELECT last_name,department_name FROM employees e LEFT OUTER JOIN departments d ON e.department_id = d.department_id;
正确答案:CD
现问,为什么选cd,其它选项为什么不行呢,
thanks
------解决方案--------------------
前两个,是传说中的右连接,以右边的表为主,左表配合输出,也就是说最终数据肯定不会多于右边的表数据。
后两个,和上面相反,是搂主想要的需求,呵呵。
------解决方案--------------------
LZ去看下 连接查询
------解决方案--------------------
左连接是以坐标为主 来关联右表 左表的数据肯定会都显示出来 如果右表存在对应数据 就显示 不存在 就是空值
------解决方案--------------------
------解决方案--------------------
+号为从表,即不带+的表为主表,在From关联的两个表的左边,即为左连接,主表不符合条件的资料也会查询出来。