Дамп определенных таблиц из MySQL и связанных данных из других таблиц - PullRequest
0 голосов
/ 01 марта 2019

В настоящее время я пишу скрипт на PHP (Laravel) для выполнения сложного дампа данных.

Для контекста я извлекаю все данные о пользователях из таблицы users.Чтобы найти все ссылки пользователей по всей базе данных, я написал запрос, чтобы получить все ссылки на таблицу пользователей следующим образом:

$userTableFks = DB::select(DB::raw("SELECT 
        TABLE_NAME, 
        COLUMN_NAME, 
        CONSTRAINT_NAME, 
        REFERENCED_TABLE_NAME, 
        REFERENCED_COLUMN_NAME 
    FROM 
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
    WHERE 
        REFERENCED_TABLE_NAME = 'users'"));

Из этого я могу найти все места, на которые user_id ссылается по всейбазы данных и экспортировать данные через базу данных для соответствующего пользователя:

foreach ($userTableFks as $userTableFk) {
    exec("mysqldump --u=*** -p=*** mydbname $userTableFk->TABLE_NAME --where $userTableFk->column_name = $user->id");
}

Теперь я хотел бы вывести таблицу placements, но таблица содержит внешние ключи из нескольких других таблиц - мне понадобятся соответствующиестроки из связанной таблицы (например, таблица schools, которая содержит столбец school_id в таблице мест размещения).

Может кто-нибудь предложить какие-либо методы для этого?

...