【问题标题】:MySQL Get results from multiple tables based on a dateMySQL 根据日期从多个表中获取结果
【发布时间】:2012-04-27 21:50:31
【问题描述】:

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

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

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

最好的方法是什么,可以在单个查询中以某种方式完成吗?

提前致谢

【问题讨论】:

  • 您是否正在寻找一个“提示符”来说明即将到期的内容(以便主要的 WHERE 是日期)?或者您是否正在按人查找显示每件商品已过期的商品?你能提供一些表结构的概念吗?
  • 我正在寻找下面的帖子。对不起,我的解释从来都不是很好,这是任何人都理解的奇迹。无论如何,感谢您的宝贵时间。

标签: mysql database datetime select


【解决方案1】:

可以使用联合在单个查询中完成:

(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;

【讨论】:

    猜你喜欢
    • 2014-08-03
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2017-08-21
    相关资源
    最近更新 更多