Вставка данных из одной таблицы в другую с условиями WHERE

у меня есть две таблицы

В таблице A есть два столбца, которые мне нужно использовать, а в таблице B есть множество столбцов, которые мне нужно заполнить общей информацией.

INSERT INTO gs_object_sensors(imei) SELECT imei FROM gs_user_objects WHERE user_id = '14'

Приведенный выше код работает и вставляет номер IMEI на основе предложения WHERE. Мне нужно включить вышеизложенное в следующую команду INSERT.

INSERT INTO table_name (imei, name, description, ...) VALUES (*IMEI*, Disconnect, Battery Disconnect, ...);

В приведенном выше операторе sql мне нужен IMEI из первого оператора SQL с дополнительным именем и описанием, который нужно добавить в таблицу B. IMEI — это информация о строке из таблицы A, а user_id — также из таблицы A, которая просто используется для WHERE пункт. Имя и описание будут константами, которых нет в таблице A.

INSERT INTO gs_object_sensors(imei) SELECT imei FROM gs_user_objects WHERE user_id = '14'

Я использовал этот код и вставил необходимую информацию из таблицы A, но мне нужно добавить дополнительную постоянную информацию в таблицу B.

@nabinsademba, это отлично работает, спасибо. Есть ли способ добавить INNER JOIN в это, чтобы добавить третью таблицу C?

Jaco Shutte 24.08.2024 11:37

да, вы можете выполнить внутреннее соединение после WHERE, используя INNER JOIN

nabin sademba 24.08.2024 11:46

Пожалуйста, предоставьте в своем вопросе как образцы входных данных, так и ожидаемый результат в виде таблиц, см. также Как составить хороший пример Кроме того, не злоупотребляйте комментариями, чтобы изменить свой вопрос или поднять дополнительные вопросы. Задавайте только один вопрос одновременно. Отредактируйте свой вопрос, если вы пропустили некоторую необходимую информацию.

Jonas Metzler 24.08.2024 11:47

@nabin sademba Есть ли какая-то причина, по которой вы публикуете комментарий, а не ответ?

P.Salmon 24.08.2024 12:05

да @P.Salmon, я не хочу терять свою репутацию, просто получая отрицательное голосование от модеров, говорящих, что ответ полностью заполнен другим постом, сделанным много лет назад. Я удалил один из моих ответов, который был принят ОП и проголосован за него.

nabin sademba 24.08.2024 12:08

@P.Salmon просто проверяю, отклоняет ли кто-то вопрос или нет, а также пытаюсь помочь ОП о том, что я знаю об этом вопросе.

nabin sademba 24.08.2024 12:11

@nabinsademba Не могли бы вы удалить свои комментарии? Они бесполезны в любом случае. Напишите хороший ответ, объясните в нем свое решение и все. Почему вас волнует репутация? Это абсолютно бессмысленно. Мы должны сосредоточиться на помощи людям, а не на победе в гонке за репутацию.

Jonas Metzler 24.08.2024 12:22

«Имя и описание будут константами, которых нет в таблице A» — откуда они тогда берутся? Добавьте, пожалуйста, рабочий пример.

P.Salmon 24.08.2024 13:49
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
8
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

пример ЗАПРОСА для решения проблемы:

INSERT INTO gs_object_sensors (imei, name, description, status)
SELECT imei, 'Disconnect', 'Battery Disconnect', 'Inactive' 
FROM gs_user_objects 
WHERE user_id = '14';

где данные в кавычках 'Disconnect', 'Battery Disconnect', 'Inactive' — это дополнительные константы, которые можно вставить в таблицу Б.

Шаги:

  1. Список всех столбцов. Определите и перечислите все столбцы, которые вам нужны. вставить данные в имя_таблицы.
  2. Выберите соответствующие данные: используйте оператор SELECT для получения Значения IMEI и включают постоянные значения для столбцов, которые не исходя из таблицы А.
  3. Соответствовать порядку столбцов. Убедитесь, что порядок столбцов в INSERT INTO соответствует порядок данных, возвращаемых инструкцией SELECT.
INSERT INTO table_name (imei, name, description, additional_column1, additional_column2)
SELECT imei, 'Disconnect', 'Battery Disconnect', additional_value1, additional_value2
FROM gs_user_objects
WHERE user_id = '14';

Другие вопросы по теме