两个不同服务器之间的数据库关系
database relation between two different server
我有两台服务器,它们都包含几个表。其中许多包含关系。现在我需要加入这些表并获取数据。我不知道如何编写这种查询。目前,我在 Laravel 工作。任何建议都会对我有所帮助。
提前致谢。
如果您想使用模型关系,您可以在模型中添加 connection
和 table
字段;
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.
希望对您有所帮助
我有两台服务器,它们都包含几个表。其中许多包含关系。现在我需要加入这些表并获取数据。我不知道如何编写这种查询。目前,我在 Laravel 工作。任何建议都会对我有所帮助。
提前致谢。
如果您想使用模型关系,您可以在模型中添加 connection
和 table
字段;
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.
希望对您有所帮助