我只想显示来自SQL查询的最近的DateTime数据,但该数据跨两个表。 我有代码SocialDatabase.SocialStart > NOW() LIMIT 1来从一个表中选择最新数据,并且我知道TrainingDatabase.SocialStart > NOW() LIMIT 1会对另一张表执行相同的操作。

因此,我该如何将它们合并在一起,以仅从SocialDatabase和TrainingDatabase表的组合列表中获取最接近的数据

谢谢

===============>>#1 票数:0

您可以创建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代码进行两次选择和一次比较。

===============>>#2 票数:0 已采纳

您可以使用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

  ask by user2291530 translate from so

未解决问题?本站智能推荐: