我遇到了需要在一个查询中查询 2 个单独的数据库(同一实例)的问题。
我习惯使用 mysql 执行此操作,但我不确定如何使用 DB2 执行此操作。
在 mySQL 中,它会是这样的:
SELECT user_info.*, game.*
FROM user_info, second_db.game_stats as game
WHERE user_info.uid = game.uid
所以问题是我如何将这样的查询转换为 DB2 语法?
相当于 this
最佳答案
您将这些表放在单独的数据库中是否有原因? MySQL 不支持模式的概念,因为在 MySQL 中“模式”与“数据库”是一样的。在 DB2 中,模式只是命名对象的集合,您可以将它们组合在一起。
在 DB2 中,单个数据库更接近于整个 MySQL 服务器,因为每个 DB2 数据库可以有多个模式。通过同一数据库内的多个架构,您的查询可以或多或少地与编写方式保持不变地运行。
但是,如果您确实有 2 个独立的 DB2 数据库(并且出于某种原因,不想迁移到具有多个模式的单个数据库):您可以通过在第一个数据库中定义昵称来实现此目的。
这需要一个有点复杂的过程来定义包装器 (CREATE WRAPPER
)、服务器 (CREATE SERVER
)、用户映射 (CREATE USER MAPPING
),最后是昵称(CREATE NICKNAME
)。通常,使用控制中心 GUI 执行这些任务是最简单的,因为它将引导您完成定义每项任务的过程。
关于database - 在一个查询中跨多个 DB2 数据库进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5465597/