如何从 2 个表中选择最近的日期时间
Posted
技术标签:
【中文标题】如何从 2 个表中选择最近的日期时间【英文标题】:How do i select the most recent datetime from 2 tables 【发布时间】:2018-06-27 17:02:28 【问题描述】:我已经四处寻找,但找不到我正在寻找的答案。
我有两个表,每个表都有一个名为 last_update_date 的日期字段。我想搜索两个表中的哪一个具有最近的日期并且只返回那个日期。
我尝试了这个查询,希望它能对两个表的 last_update_date 字段进行排序并返回该结果,但查询不起作用。任何帮助将不胜感激。
"Select last_update_date from Table1, Table2 order by last_update_date DESC Limit 1"
【问题讨论】:
是否有对其他表的引用或要加入的任何内容?您可以在两个表上执行 UNION ALL 并从中选择最大日期。您想要的表格上是否有任何标识符,或者只是 lastupdate 日期本身? 【参考方案1】:SELECT MAX(last_update_date)
FROM (
SELECT MAX(last_update_date) as last_update_date
FROM Table1
UNION ALL
SELECT MAX(last_update_date)
FROM Table2
) tMax
【讨论】:
这是最好的答案。 我必须首先为没有更具体而道歉。当我运行查询时,这非常有效。问题是我试图将语句放在 php PDO 语句中。当我这样做时,我得到一个空白返回 $sql = $db->prepare("SELECT MAX(last_update_date) FROM ( SELECT MAX(last_update_date) as last_update_date FROM Table1 UNION ALL SELECT MAX(last_update_date) FROM Table2 ) tMax"); $sql->执行(); $results = $sql->fetch(PDO::FETCH_ASSOC); $extract_date = $results['last_update_date'];回声 $extract_date; 知道了,我不得不将 $results['last_update_date'] 切换到 $results['MAX(last_udpate_date')] 。谢谢大家的帮助【参考方案2】:select * from
( select last_update_date from table1
UNION ALL
select last_update_date from table2
) order by last_update_date;
【讨论】:
如果 mysql 有最大值,可能仍然使用联合从每个表中选择 max(last_update_date),因此在获取最大日期之前,您不会从两个表中选择每条记录 是的,你是 100% 正确的,从两个表中获取最大值会更快。【参考方案3】:SELECT MAX(A.last_update_date)
(SELECT last_update_date FROM Table1
UNION ALL
SELECT last_update_date FROM Table2) A;
【讨论】:
以上是关于如何从 2 个表中选择最近的日期时间的主要内容,如果未能解决你的问题,请参考以下文章
使用 Athena / Presto 从多个表返回 SQL 数据,受 1 个表中的日期范围限制