Вставить в таблицу sql server, используя подзапрос, возвращающий более 1 значения - PullRequest
0 голосов
/ 17 октября 2019

У меня есть следующие таблицы

table1

enter image description here

table2

enter image description here

table3

enter image description here

Я хочудля каждого идентификатора в table2, где условие истинно, вставить 2 строки в table1. Строки должны иметь table2.id и table3.id (для всех идентификаторов в table3)

Вот мой сценарий.

INSERT INTO table1 (wid, w_check_id)
SELECT (SELECT w.id FROM table2 w WITH(NOLOCK) WHERE w.category_code IN ('004','001')),
       id
FROM table3 WITH(NOLOCK)

Ожидаемый результат должен быть примерно таким:

table1

id |w_id |w_check_id

1 |32098 |1

2 |32098 |2

3 |82459 |1

4 |82459 |2

1 Ответ

1 голос
/ 17 октября 2019

The rows should have the table2.id and all ids in table3 звучит так, как будто вам нужно перекрестное соединение:

Insert into  @T1 (wid,w_check_id)
SELECT w.id,T3.Id
FROM @T2 w 
cross JOin @T3 T3
WHERE w.wallet_category_code IN ('004','001')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...