database - 在一个查询中跨多个 DB2 数据库进行选择

标签 database db2

我遇到了需要在一个查询中查询 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/

相关文章:

sql - 如何在 DB2 SQL 中划分两列

database - 更改 postgresql 中的列大小

mysql - 数据库设计不支持产品录入。

SQLite 崩溃的 Android 数据输入

java - 如何从 DB2 获取描述性错误消息?

python - 通过python更改DB2查询结果的类型

sql - 如何在 DB2 SQL 中打印出 SQLHSTMT 变量的值?

jdbc - 如果我有 JDBC 连接,如何在 DB2 上获取当前模式?

sql - 执行查询不更新记录/数据

mysql - 如何导入数据库,更新已更改的产品,删除已删除的产品