我有3个表(table1.table2和table3),每个表都有员工出勤和员工代码
例如:
Table 1 Table 2 Table 3
Employee Code 1001 1001 no record
Employee Code no record 1002 no record
Employee Code 1003 no record 1003
最后我需要在下面显示数据。
Table 1 Table 2 Table 3
1001 Y Y N
1002 N Y N
1003 Y N Y
即我需要向员工展示相应表格中存在/不存在的员工。
答案 0 :(得分:0)
您可以使用完整的外部联接来执行此操作:
select emp_code,
case when t1.emp_code is not null then 'Y' else 'N' end as table_1,
case when t2.emp_code is not null then 'Y' else 'N' end as table_2,
case when t3.emp_code is not null then 'Y' else 'N' end as table_3
from table_1 t1
full outer join table_2 t2 using (emp_code)
full outer join table_3 t2 using (emp_code);
请注意,选择列表中的emp_code是不合格的。基于using
关键字的联接将返回联接条件的非空值,从而无需coalesce()
或case
您没有说明您的数据库,但上面是标准SQL。