mysql连接两个具有null值的表

时间:2015-03-25 06:09:16

标签: mysql

我正在努力加入两个可能输出一些空值的表

这是我的第一个名为:Leave_Type

的表
id  name            days_entitled
1   Vacation leave   12
2   Sick leave       12
3   maternity leave  5
4   paternity leave  5

留下详细信息

requester_id requester_name leave_type_id   days_consumed
1            John           1               1   
1            John           2               3
1            John           1               1

我想看看请求者John的结果

id  name            days_entitled   days_consumed
1   Vacation leave   12             2
2   Sick leave       12             3
3   maternity leave  5              0
4   paternity leave  5              0

3 个答案:

答案 0 :(得分:1)

尝试使用left join

select id,name,days_entitled, ifNull(days_consumed,0) from
Leave_Type left outer join Leave_Details on leave_type_id = id

答案 1 :(得分:1)

您可以获得所需的结果

select 
lt.*,
coalesce(x.days_consumed,0) as days_consumed
from leave_type lt 
left join ( 
  select leave_type_id, 
  sum(days_consumed) as days_consumed 
  from leave_details 
  where requester_id = 1 group by leave_type_id
)x on x.leave_type_id = lt.id 

答案 2 :(得分:0)

select `requester`, tbl_hr_leave_type.id,name,`days_entitled`,sum(days) as Credit from
tbl_hr_leave_type left outer join tbl_hr_leave_form on tbl_hr_leave_form.`leave_details` = tbl_hr_leave_type.id and requester='411'
group by name
order by tbl_hr_leave_type.id