вставить используя цикл в SQL - PullRequest
0 голосов
/ 31 августа 2018

Я новичок в SQL, я просто хочу знать, возможно ли это? Если да, может кто-нибудь помочь мне, пожалуйста.

Вот сценарий:

У меня есть две таблицы с именами Таблица A и Таблица B, как показано на изображении ниже.

Таблица A содержит столбцы myId и desc. В таблице B есть myId и другие столбцы.

image here

Вот ловушка, которую я хотел вставить (не обновляя, если сценарий в ссылке на изображение, что таблица B пуста), подсвеченный myId в таблице A к таблице B.

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Это показывает это в цикле, предполагая, что MYID на самом деле каким-то образом выбирается из таблицы A. Но это отвечает на вопрос о петлях.

;WITH n AS (
    SELECT 1 as n
    UNION ALL
    SELECT 1 + n as n from n WHERE n < 4 
)
insert into b (myId, etc1, etc2, etc3)
select myid, 'some data here', 'some data here', 'some data here'
from TableA where myID=2
cross join n
0 голосов
/ 31 августа 2018

Из того, что вы описываете, вы можете использовать insert . . . select. Я не понимаю, что A имеет отношение к вопросу.

insert into b (myId, etc1, etc2, etc3)
     select 2, 'some data here', 'some data here', 'some data here'
     union all
     select 2, 'some data here', 'some data here', 'some data here'
     union all
     select 2, 'some data here', 'some data here', 'some data here';

Предполагается, что thisTableId автоматически увеличивается.

Вы можете легко получить данные из таблицы:

insert into b (myId, etc1, etc2, etc3)
     select a.myid, 'some data here', 'some data here', 'some data here'
     from a
     where a.myid = 2
     union all
     select a.myid, 'some data here', 'some data here', 'some data here'
     from a
     where a.myid = 2
     union all
     select a.myid, 'some data here', 'some data here', 'some data here'
     from a
     where a.myid = 2;
...