我遇到了一个问题,我需要在一个查询中查询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
答案 0 :(得分:5)
你有没有理由把表放在一个单独的数据库中? MySQL不支持模式的概念,因为在MySQL中,“模式”与“数据库”是相同的。在DB2中,模式只是命名对象的集合,可以将它们组合在一起。
在DB2中,单个数据库更接近整个MySQL服务器,因为每个DB2数据库都可以有多个模式。在同一个数据库中有多个模式,您的查询可以根据其编写方式或多或少地保持不变。
但是,如果您确实有2个单独的DB2数据库(并且由于某种原因,不希望迁移到具有多个模式的单个数据库):您可以通过在第一个数据库中定义昵称来实现此目的。
这需要一个有点复杂的过程来定义包装器(CREATE WRAPPER
),服务器(CREATE SERVER
),用户映射(CREATE USER MAPPING
)以及最后的昵称({{ 1}})。使用Control Center GUI执行这些任务通常最简单,因为它将引导您完成定义每个任务的过程。