我有2個表,員工和假期。向JOIN語句中添加WHERE子句
我想選擇一個員工名單,他們允許的假期和剩餘的假期後,看看今年輸入的假期。
的表格看起來像這樣(只顯示重要行)
employees
id,
name,
allowed_holiday
holiday
id,
employee,
num_days,
date_to
我有一個發現這些值精細當前的查詢,但我想添加一個WHERE子句只能算假期對員工如果DATE_TO > xxxx-09-01 AND < xxxx-09-01。
SELECT
e.id,
e.name,
e.allowed_holiday,
(e.allowed_holiday - SUM(h.num_days)) AS remaining
FROM
employees AS e
LEFT JOIN
holiday AS h
ON
h.employee = e.id
GROUP BY
e.name
ORDER BY
e.name ASC
我不確定在哪裏爲此添加WHERE子句,但不刪除沒有假期列出的數據的員工。
雖然這是可能的條件下加入到內部聯接的WHERE子句,我個人更喜歡將它們添加在ON語句只是爲了配合德左,右連接語句。但是,對於man表的過濾器必須在WHERE語句中,所以它看起來有些奇怪。這就是爲什麼我更喜歡ORACLE的方法。 – 2011-12-21 11:55:21