Insert into t sql: INSERT (Transact-SQL) — SQL Server
Содержание
mysql — SQL: INSERT INTO table(…) VALUES (…) с данными, полученными из других таблиц
Задавать вопрос
спросил
Изменено
3 года, 3 месяца назад
Просмотрено
539 раз
Спасибо, что прошли мимо. Я знаю базовый синтаксис SQL и не могу найти способ выполнить эту задачу.
Мне нужно создать хранимую процедуру, которая вставляет данные из одной таблицы в другую, а также извлекает данные из многих других. Предположим, у меня есть эти таблицы со столбцами:
пользователей
- имя (varchar)
- sub_id (целое число)
- dub_id (целое число)
tmp_users
- имя (varchar)
- под_имя (varchar)
- dub_name (varchar)
субтитры
- идентификатор (целое число)
- имя (varchar)
дабы
- идентификатор (целое число)
- имя (varchar)
В псевдокоде я должен сделать что-то вроде этого:
ВСТАВИТЬ В пользователей (имя, sub_id, dub_id) ВСЕ СТРОКИ ИЗ ЗНАЧЕНИЙ tmp_users ( имя = tmp_users.name, sub_id = ВЫБЕРИТЕ идентификатор ИЗ подпрограмм, ГДЕ tmp_users.sub_name = подпрограммы.имя, dub_id = ВЫБЕРИТЕ идентификатор ИЗ дубляжей, ГДЕ tmp_users.dub_name = dubs.name, )
В формулировке мне нужно вставить в пользователей
все строки из tmp_users
, чтобы сохранить столбец tmp_users.name
, но получить афферентные id
всех других таблиц на основе *_name 9 столбец 0020. Как мне подойти к этой задаче?
- mysql
- sql
- база данных
- sql-insert
1
Кажется, вы ищете INSERT ... SELECT
синтаксис:
INSERT INTO пользователей (имя, sub_id, dub_id) ВЫБИРАТЬ ты.имя, с.ид, делал ОТ tmp_users ту LEFT JOIN subs ON s.name = tu.sub_name LEFT JOIN dubs d ON d.name = tu.dub_name
Это приносит все строки из tmp_users
, а затем пытается восстановить соответствующие sub_id
и dub_id
. Для каждой строки, возвращаемой
select
, запись вставляется в пользователей
. Преимущество этого синтаксиса в том, что вы можете запустить сначала выберите
запрос независимо, чтобы увидеть, что будет вставлено.
0
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.