связь с базой данных между двумя разными серверами - PullRequest
0 голосов
/ 28 января 2020

У меня есть два сервера, и оба они содержат несколько таблиц. Многие из них содержат отношения. Теперь мне нужно объединить эти таблицы и получить данные. Я понятия не имею, как написать такой запрос. В настоящее время я работаю в Laravel. Любые предложения помогут мне.

Заранее спасибо.

1 Ответ

1 голос
/ 28 января 2020

Если вы хотите использовать отношения модели, вы можете добавить в вашу модель поле 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 .

Если вы пишете необработанные запросы, вы можете использовать полный путь к таблице (указать базу данных):

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

Примечание: у вас должно быть достаточно привилегий для обеих таблиц, чтобы объединять и выбирать данные. Если вы используете существует, имеет или что-то подобное, где ORM необходимо объединить две таблицы.

Надеюсь, это поможет вам

...