Массовая вставка SQL на основе данных, извлеченных из другой таблицы - PullRequest
2 голосов
/ 27 февраля 2011

Я действительно не знаю, правильно ли я сформулировал это, но я постараюсь объяснить, что я хочу.

Table 1 - X
id | name | blah

Table 2 - Y
id | Xid | configKey | ConfigVal

Я хочу создать строку в таблице 2 для всегов таблице 1, где соответствующий идентификатор из таблицы 1 входит в столбец Xid в таблице 2. Я из Java-фон и не слишком увлечен SQL, поэтому не слишком уверен, как это сделать.В таблице 1 много строк, поэтому я хотел бы написать это.

Я очень хочу сделать что-то вроде этого:

Table1 (the object table)
1 test1 a
2 test3 b
3 testn n

Запустить запросполучить заполнить это

Table 2 (the config table)
...exisitng rows
59 1 doSomething true
60 2 doSomething true
61 3 doSomething true

Итак, я очень хочу добавить в строку конфигурации (все те же значения) за исключением идентификатора, которому он соответствует (столбец 2 в таблице 2 должен быть столбец 1 из таблицы 1)

Спасибо

Ответы [ 3 ]

4 голосов
/ 27 февраля 2011

Чтобы использовать фиксированные значения 'doSomething' и 'true' для всех вставленных записей:

insert into table2 (Xid, configKey, ConfigVal)
select id, 'doSomething', 'true'
from table1
3 голосов
/ 27 февраля 2011

Использовать Выберите в , чтобы ссылка была синтаксисом SQL Server, синтаксис будет отличаться от сервера к серверу, но формат обычно довольно близок.

SQL Server

 select id as Xid, value as name, 'other value' as blah  INTO TABLE1 from TABLE2

Мой SQL

 INSERT INTO table1 (id, name,other_value)
SELECT xid, value, 'another value' as other_value from TABLE2

Вот Учебник по SQL , который поможет вам в этом.

0 голосов
/ 27 февраля 2011

Я думаю, это может сработать

Insert into table2(xid, value)
select id, name from table1.

Но у вас должен быть столбец Id в таблице 2 в качестве идентификатора или вы должны задать ему значение по умолчанию.(Это только для сервера sql.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...