多列子查詢

成對比較sql

 SELECT employee_id,
  manager_id       ,
  department_id
   FROM employees
  WHERE (manager_id, department_id) IN
  (SELECT manager_id,
    department_id
     FROM employees
    WHERE employee_id IN (178,174)
  )
AND employee_id NOT IN (178,174);

輸出:176 149 80

只有要查詢的東西和你子查詢返回的東西一一對應上了,你的查詢才能成功。
若是有一個 對應不上那麼你的查詢不會成功。



非成對比較
 SELECT employee_id,
  manager_id       ,
  department_id
   FROM employees
  WHERE manager_id IN
  (SELECT manager_id FROM employees WHERE employee_id IN (174,141)
  )
AND department_id IN
  (SELECT department_id FROM employees WHERE employee_id IN (174,141)
  )
AND employee_id NOT IN(174,141);
輸出:144 124 50
      143 124 50
      142       124 50
      176       149     80
上面兩個程序就是成對子查詢和非成對子查詢二者之間的區別。
相關文章
相關標籤/搜索