【问题标题】:Join two tables from different database of different server in laravel在laravel中加入来自不同服务器的不同数据库的两个表
【发布时间】:2021-11-05 08:29:08
【问题描述】:

我很难连接两个表,一个是来自 postgres 数据库的表,这是我在 laravel 中的默认数据库,另一个是来自另一台服务器上的 mysql 数据库的表。

我已经在 config/database.php 中定义了 mysql 连接

我的问题是我想用一个公共列加入表格,即 ID。

我已经完成了我的研究。但他们中的大多数人表示不可能将来自两个不同网络的两个表连接起来。

我想要实现的是我想加入两个表,因为我想在 laravel 中使用 Yajra Datatable 进行搜索过滤器。

所以我的问题是。在不同的网络上连接两个不同数据库postgres和mysql的表真的不可能吗?或者我可以使用一些技巧来实现这一目标

【问题讨论】:

    标签: laravel


    【解决方案1】:

    您可以使用 Eloquent 模型轻松地做到这一点。这不是正确的 SQL 连接,但您可以实现跨多个数据库或事件服务器的关系查询。

    1. 在您的 config/database.php 文件中,根据需要声明尽可能多的连接
    2. 为每个表创建所需的模型
    3. 在模型中指定$connection 属性

    例如:

    class Model1 extends Model
    {
        public $connection = 'mysql_database';
        
        public function model2()
        {
            return $this->belongsTo(Model2::class);
        }
    }
    
    class Model2 extends Model
    {
        public $connection = 'postgre_database';
        
        public function model1s()
        {
            return $this->hasMany(Model1::class);
        }
    }
    

    然后您可以正常使用这些模型之间的关系Eloquent relationship

    【讨论】:

    • 感谢您的回答。我已经尝试过你的解决方案,我认为它的工作..我想先测试它......然后我会联系你
    • 嗨...我已经测试了您的解决方案,这就是我正在寻找的...谢谢您的帮助
    【解决方案2】:

    【讨论】:

    • 感谢您的回复。我真的很感激
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 2016-08-10
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    相关资源
    最近更新 更多