我有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