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

时间:2011-03-28 22:02:41

标签: 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

1 个答案:

答案 0 :(得分:5)

你有没有理由把表放在一个单独的数据库中? MySQL不支持模式的概念,因为在MySQL中,“模式”与“数据库”是相同的。在DB2中,模式只是命名对象的集合,可以将它们组合在一起。

在DB2中,单个数据库更接近整个MySQL服务器,因为每个DB2数据库都可以有多个模式。在同一个数据库中有多个模式,您的查询可以根据其编写方式或多或少地保持不变。

但是,如果您确实有2个单独的DB2数据库(并且由于某种原因,不希望迁移到具有多个模式的单个数据库):您可以通过在第一个数据库中定义昵称来实现此目的。

这需要一个有点复杂的过程来定义包装器(CREATE WRAPPER),服务器(CREATE SERVER),用户映射(CREATE USER MAPPING)以及最后的昵称({{ 1}})。使用Control Center GUI执行这些任务通常最简单,因为它将引导您完成定义每个任务的过程。