我正在创建一个人事数据库,并有多个与用户相关的表格,包括体检,护照,疫苗接种,会员资格等。
这些表中的每一个都包含一个到期记录,我想查询所有表。基本上我想要一个将在特定时间到期的项目列表,例如:
John - Passport expires in 1 month
Emma - Vaccination expires in 1 month
Carol - Vaccination expires in 3 weeks
Josh - Medical expires in 2 weeks
James - Passport expires in 3 days
执行此操作的最佳方式是什么,可以在单个查询中以某种方式完成吗?
提前致谢
答案 0 :(得分:0)
可以使用union:
在单个查询中完成(SELECT name, 'passport', expiry_date FROM table_passport WHERE ...)
UNION ALL
(SELECT name, 'vaccination', expiry_date FROM table_vaccinations WHERE ...)
UNION ALL
(SELECT name, 'medical', expiry_date FROM table_medical WHERE ...)
ORDER BY name;