用于从存储在多个数据库中的表中检索主键列的SQL查询

时间:2014-05-23 03:52:11

标签: mysql

我正在开发一个与数据库相关的项目。我想从同一个表的主键列(比如tbrmenuitem)中找出存储在多个数据库中的最高值。

那么,是否可以通过一个查询或者我必须在不同的时间触发不同的查询以建立与多个数据库的连接? (也就是说,在数据库中获取表名的第一个查询,第二个查询找到我得到的表的主键,然后在主键列的值上找到MAX()?)

1 个答案:

答案 0 :(得分:0)

您可以在服务器上查询其他数据库中的表,类似于其他任何表的表。您只需要使用模式(数据库)的名称限定表名。

SELECT MAX(max) FROM (
    SELECT MAX(id_column) AS max
        FROM test2.test2table
    UNION ALL
    SELECT MAX(id_column) AS max
        FROM test.test1table
) AS t

这样做,是从MAX()数据库中的表test2table中选择一列的test2

SELECT MAX(id_column) AS max
  FROM test2.test2table

然后对该结果执行UNION,并在test1table数据库的test表上执行类似查询。

UNION ALL
SELECT MAX(id_column) AS max
  FROM test.test1table

然后将其包装在子查询中,该子查询从UNION返回每个结果的最大值。