【问题标题】:Is there a way to join table from api call in laravel?有没有办法从 laravel 中的 api 调用加入表?
【发布时间】:2020-08-18 17:43:58
【问题描述】:

有没有办法从 api 调用(不同的服务器)加入表? 在我的表中,我存储中心的 ID,并且中心表位于不同的服务器上。现在我需要一个查询来加入中心表并从那里只选择中心名称。 如果这是不可能的,还有什么替代方案?

【问题讨论】:

  • 您能给我们看一些代码,以便我们更好地了解当前情况吗?此外,您的项目的更多背景会很棒。 SO上有一篇关于How to ask a question的优秀条目。
  • 对不起,如果我的问题不清楚。我有一个表受益人,我存储 center_id 并且该 ID 来自不同的服务器(我的应用程序与 laravel 护照通信)。现在在索引页面上我需要显示中心名称,我需要类似join(table from different server, 'beneficiaries.center_id', '=', table from different server.id)

标签: mysql laravel api


【解决方案1】:

检查join-tables-from-two-different-server 从远程服务器加入。

here 连接来自不同数据库的表

如果以上都做不到:

您可以在 Laravel 中使用自定义逻辑,从不同来源提取数据,然后通过 PHP 将其组合成对您有用的东西

【讨论】:

    【解决方案2】:

    您可以连接不同数据库的表,即使它们位于不同的服务器上。 你必须使用Mysql Federated Engine

    您必须基于另一个远程位置的表创建一个联合表才能以您想要的方式使用。表的结构必须完全相同。 思路是这样的:

        CREATE TABLE example_table (
            id     INT(20) NOT NULL AUTO_INCREMENT,
            name   VARCHAR(50) NOT NULL DEFAULT ''
            ...
        )
        ENGINE=FEDERATED
        CONNECTION='mysql://remoteuser@remote_host:[port]/federated/example_table';
    

    然后你可以使用 laravel 的 join 函数简单地加入:

    ...
    join('example_table', 'other.center_id', '=', 'example_table.id')
    ...
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-03
      • 2020-04-07
      • 2017-10-16
      • 2011-04-13
      相关资源
      最近更新 更多