使用以下問題,您能否向我解釋兩個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