我提前,如果这样的事情已经讨论了其他地方表示歉意,但如果有,我无法找到它(我什至不知道如何寻找这样的事情) 。我试图加入两张桌子,“员工”和“离开”。我想从“雇员”表中列出的每一位员工,并从“离开”表,其中“离开日期”(在休假表bdate列)比2014年1月1日(或当年更大的填充假数据报告)。问题在于并不是每个员工都有数据,所以我发现一个正常的加入只会从那些实际上有离职数据的员工那里提取数据。我想我要的是一个左连接,但我只能从两个表,其中居然还有两个表中该雇员(希望是有道理的)数据得到记录。多表连接的条件从一个表
Select bunch_of_columns, leave.bdate, SUM(leave.Vhours) as TotalVacationHours, SUM(leave.shours) as TotalSickHours
from employees
left join leave on employees.id=leave.id
where employees.user_active ='1' AND leave.BDate >= '2014-01-01'
group by employees.id
Order by employees.user_last
这产生了“2014-01-01”之后有留下记录的个人的一个记录。我想从从休假表中可用数据的职员表员工记录的完整列表(和空白,如果都没有),其中在休假表中的“bdate”列比元旦更大。
我想这一点:
+-----+----------+---------------+---------------+--------------+
|ID | Name | Vacation Hrs | Sick Hrs | Date |
+-----+----------+---------------+---------------+--------------+
| 1 | Bob | 5 | 8 | 2014-01-01 |
| 2 | Lucy | NULL | NULL | NULL |
| 3 | Jerry | NULL | NULL | NULL |
| 4 | Dieter | 3 | 5 | 2014-01-08 |
| 5 | Sprockets| NULL | NULL | NULL |
+-----+----------+---------------+---------------+--------------+
不是这个:
+-----+----------+---------------+---------------+--------------+
| row | Name | Vacation Hrs | Sick Hrs | Date |
+-----+----------+---------------+---------------+--------------+
| 1 | Bob | 5 | 8 | 2014-01-01 |
| 4 | Dieter | 3 | 5 | 2014-01-08 |
+-----+----------+---------------+---------------+--------------+
容易让你说!我不知道为什么没有发生在我身上。非常感谢,OGHaza和DRapp!这很好用! – user3059142