使用以下问题,您能否向我解释两个SQL之间的区别以及为什么它们不具有相同的结果?为什么一个查询返回的结果多于其他
显示工资和佣金与位于ID1700的任何员工的工资和佣金相匹配的任何员工的姓氏,部门名称和薪水。
SELECT E.LAST_NAME, D.DEPARTMENT_NAME, E.SALARY
FROM EMPLOYEES E
JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID =D.DEPARTMENT_ID)
WHERE E.SALARY IN (SELECT SALARY
FROM EMPLOYEES
WHERE D.LOCATION_ID = 1700) AND
E.COMMISSION_PCT IN (SELECT COMMISSION_PCT
FROM EMPLOYEES
WHERE D.LOCATION_ID = 1700);
(0输出)
和
SELECT e.last_name, d.department_name, e.salary
FROM employees e,
departments d
WHERE e.department_id = d.department_id AND
(salary, NVL(commission_pct,0)) IN (SELECT salary,
NVL(commission_pct,0)
FROM employees e,
departments d
WHERE e.department_id = d.department_id AND
d.location_id = 1700);
(36输出)
你实际使用哪个数据库?我猜测甲骨文,我也猜测这是一个家庭作业问题。 –
是的,Oracle数据库。 我试图找出为什么0输出一个不起作用。 (我自己写的)。 问题的解决方案是具有36个输出的解决方案。 我不知道为什么我的SQL类型不正确,看起来对我很正确,但显然不是基于结果。 –
添加一些示例表格数据和当前的两个结果。 (以及格式化文本。)同时向我们显示想要的结果。 – jarlh