0

我只想显示 SQL 查询中最近的 DateTime 数据,但数据跨两个表。我有SocialDatabase.SocialStart > NOW() LIMIT 1从一个表中选择最新数据的代码,我知道TrainingDatabase.SocialStart > NOW() LIMIT 1会对另一个表做同样的事情。

那么我将如何将这些合并在一起以仅从 SocialDatabase 和 TrainingDatabase 表的组合列表中获取最近的数据

谢谢

4

2 回答 2

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代码中进行两次选择和一次比较。

于 2013-04-17T23:59:38.140 回答
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
于 2013-04-18T00:10:16.083 回答