我正在努力加入两个可能输出一些空值的表
这是我的第一个名为: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
答案 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