在没有参考的情况下结合不同数据库的两个子选择

Combine two subselect over different databases without refference

我需要将两个子选择组合成一个 sortable 结果。数据来自同一台服务器上的两个数据库。

所以例如我有这两个查询:

查询#1

SELECT foo.someId AS id, foo.name AS title, foo.tstmp AS timestamp, 'db1' as db
FROM `db1`.`table_foo` AS `foo`
ORDER BY foo.tstmp DESC

查询 #2

SELECT bar.that_id AS id, bar.object_title AS title, bar.timestamp AS timestamp, 'db2' as db
FROM `db2`.`bar` AS `bar`
ORDER BY bar.timestamp DESC

现在我想以某种方式将这两个选择合并为一个结果,并使用带有偏移量的 LIMIT 对结果进行分页。

这可能吗? 没有 table 连接两个子选择。

尝试使用 UNION ALL 这个:

(
SELECT foo.someId AS id, foo.name AS title, foo.tstmp AS timestamp, 'db1' as db
FROM `db1`.`table_foo` AS `foo`
) UNION All (
SELECT bar.that_id AS id, bar.object_title AS title, bar.timestamp AS timestamp, 'db2' as db
FROM `db2`.`bar` AS `bar`
)
ORDER BY 3 DESC
LIMIT N,M

如果没有可选的 ALL,重复的条目将被删除。如果你能统治我们的重复,你可能不需要它。