我正在尝试为公司的工资做报告,我想通过使用这样的查询来展示公司的所有员工:
select tab1.name, tab1.job,tab1.salary, tab2.discount-days,
(tab1.salary-((tab1.salary/30)*tab2.discount-days) as 'total'
from tab1,
tab2
where tab2 .date_discount between date_begin and date_end;
此处仅显示在此期间已经享受折扣的员工,但我想向公司的所有员工展示,如果有人已经在总计中获得折扣显示。
请执行查询以显示所有不仅有折扣的员工
答案 0 :(得分:1)
您需要使用LEFT JOIN。
select tab1.name, tab1.job,tab1.salary, tab2.discount-days,
(tab1.salary-((tab1.salary/30)*tab2.discount-days) as 'total'
from tab1,
tab2 left join tab2 as tab3 on tab2.primary_key = tab3.id.primary_key
and tab3 .date_discount between date_begin and date_end;
如果使用左连接,左侧表中存在的所有记录都将出现,右侧表中的匹配记录将会出现。
我认为它可能适合你。