MySQL根据日期从多个表中获取结果

时间:2012-04-16 14:41:35

标签: mysql database datetime select

我正在创建一个人事数据库,并有多个与用户相关的表格,包括体检,护照,疫苗接种,会员资格等。

这些表中的每一个都包含一个到期记录,我想查询所有表。基本上我想要一个将在特定时间到期的项目列表,例如:

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

执行此操作的最佳方式是什么,可以在单个查询中以某种方式完成吗?

提前致谢

1 个答案:

答案 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;