【问题标题】:Is it possible to implement JOIN queries with 2 Mysql Databases?是否可以使用 2 个 Mysql 数据库实现 JOIN 查询?
【发布时间】:2011-10-23 02:44:53
【问题描述】:

我在一个项目中同时使用 Moodle 和 CodeIgnitor;我的一些表在moodle db中,其他表在另一个数据库中。

是否可以通过两个 Mysql 数据库实现 JOIN 查询来获取我们需要的数据?

【问题讨论】:

标签: mysql join cross-join


【解决方案1】:

  • 两个数据库都使用相同的守护进程(意味着相同的端口,相同的服务器)
  • 用户帐户有足够的 ACL 来访问这两个数据库
  • 如果您能够自己构建查询

  • 某些框架/数据建模会限制您这样做(这意味着 CODE 会教您如何执行 SQL,并且您不能违反他们的规则(除非您自己动手)

【讨论】:

    【解决方案2】:

    是的。

    当您引用表和字段时,不要使用“默认”(当前选择的)数据库,you can explicitly specify the database name

    您可以将默认数据库中的表称为 tbl_name,或者 作为 db_name.tbl_name 显式指定数据库。你可以参考 作为 col_name、tbl_name.col_name 或 db_name.tbl_name.col_name 的列

    但是,我不建议这样做。如果表之间的数据是相关的,那么它们应该在 same 数据库中。这才是有意义的!

    【讨论】:

    • 我不同意你最后的说法。拥有两个操作谨慎的系统是完全合理的,但是例如出于管理信息的目的,需要吸收类似的数据以进行报告,例如金融交易。两个系统不适合使用同一个数据库。
    • 表格代表数据关系。数据库是这些关系的分组,每个关系都可以被交叉检查以产生交叉点和其他好东西。数据库是潜在相关数据的单一、包罗万象的主体。一个系统,一个数据库。但是,我可以看到它在从多个系统中累积数据时可能很有用。
    • 我并没有质疑数据库的定义。
    • 请删除您的反对票。我们不会因为不同意这里的意见而投反对票,就像我们在 Meta 上所做的那样。我们对“严重错误、不相关、误导或提供非常糟糕的建议”投了反对票,并且 - 鉴于我的事实回答和文档中的引用 - 我看不出这如何适用于此。
    • @TomalakGeret'kal 让我们continue this discussion in chat
    【解决方案3】:

    是的。

    如果DB在同一台服务器上,可以使用

    select a.col from db1.table1 a, db2.table2 b where a.col = b.col 
    

    显然你会把你的加入条件放在这里。

    【讨论】:

      猜你喜欢
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多