1

在两个不同的数据库中有两个表:

可以说我有 Databaseusers和 Database questions。如果users有一个名为的USER_STATS

USER_ID,
EDU_INT1,
EDU_INT2,
EDU_INT3

, 并questions有一个名为的表questions,其中有一列名为 CLASS_SUBJECTS。

我想运行一个查询,该查询将显示 * from QUESTIONSwhereCLASS_SUBJECTS等于EDU_INT1,EDU_INT2,EDU_INT3其中EDU_INT's 是从特定的USER_ID

有任何想法吗?由于两个不同的数据库,这有点困难

4

2 回答 2

2

在跨两个数据库进行查询时,您只需在数据库名称前面加上一个.表名,如 in database.table.column,并且数据库连接用户必须有权访问这两个数据库。

除此之外,这是一个常规的JOIN,但使用 3 个条件的更复杂的ON子句OR一起使用:

SELECT
  q.*
FROM 
  questions.questions q
  JOIN users.USER_STATS u ON (
    q.CLASS_SUBJECTS = u.EDU_INT1
    OR q.CLASS_SUBJECTS = u.EDU_INT2
    OR q.CLASS_SUBJECTS = u.EDU_INT3
  )
WHERE u.USER_ID = <some user id>
于 2012-07-15T19:26:30.137 回答
0

如果两者都在单个服务器上的同一实例中运行,则数据库名称引用可能会起作用。如果您需要扩展到多台服务器,您可能需要使用复制并可能设置联合表。

于 2012-07-15T19:52:26.420 回答