两个不同服务器之间的数据库关系

database relation between two different server

我有两台服务器,它们都包含几个表。其中许多包含关系。现在我需要加入这些表并获取数据。我不知道如何编写这种查询。目前,我在 Laravel 工作。任何建议都会对我有所帮助。

提前致谢。

如果您想使用模型关系,您可以在模型中添加 connectiontable 字段;

class User extends Model {
    public $connection = 'firstconnection';
    public $table = 'users';
    ...

    public function comments() {
        return $this->hasMany(Comment::class);
    }
}


class Comment extends Model {
    public $connection = 'secondconnection';
    public $table = 'comments';
    ...
}

您可以在 config/database.php 中定义连接,默认连接是 mysql

如果您编写原始查询,您可以使用完整的 table 路径(指定数据库):

SELECT * FROM db1.users JOIN db2.comments ON db1.users.id = db2.comments.user_id;

注意:您必须在 table 上拥有足够的权限才能加入和 select 数据。如果您使用 exists、has 或类似的东西,ORM 需要加入两个 table.

希望对您有所帮助