我只想显示 SQL 查询中最近的 DateTime 数据,但数据跨两个表。我有SocialDatabase.SocialStart > NOW() LIMIT 1
从一个表中选择最新数据的代码,我知道TrainingDatabase.SocialStart > NOW() LIMIT 1
会对另一个表做同样的事情。
那么我将如何将这些合并在一起以仅从 SocialDatabase 和 TrainingDatabase 表的组合列表中获取最近的数据
谢谢
您可以创建一个view
- 它是内存中的一个虚拟表,并在其上运行一个选择。
例子:
create view tmp as select id, timestamp from SocialDatabase.SocialStart order by timestamp asc limit 1;
insert into tmp select id, timestamp from TrainingDatabase.SocialStart order by timestamp asc limit 1;
select id,timestamp from tmp where timestamp>now() order by timestamp asc limit 1;
..或者你可以做得更简单 - 在java代码中进行两次选择和一次比较。
您可以使用UNION语法:
(select SocialStart, Data from SocialDatabase where SocialDatabase.SocialStart > now() limit 1)
union
(select SocialStart, Data from TrainingDatabase where TrainingDatabase.SocialStart > now() limit 1)
order by 1 desc limit 1