Как вставить несколько строк данных, используя SELECT и VALUES в SQL - PullRequest
1 голос
/ 06 апреля 2020

У меня есть две таблицы, одна - Владелец, другая - Pet, и Владелец содержит целые числа с автоинкрементом OwnerID. Мне нужно выбрать этот OwnerID в моей таблице питомцев, а также включить отдельные значения для каждого имени питомца / дня рождения.

Я пробовал это, но он просто копировал одно имя питомца / день рождения для каждой строки.

INSERT INTO  Pet (OwnerID, PetName, DateOfBirth)
SELECT OwnerID, 'Luna', '2013-08-26T12:00:00+00:00'
FROM Owner;

Я также пробовал это:

INSERT INTO Pet (OwnerID, PetName, DateOfBirth)
VALUES (
(SELECT OwnerID, 'Luna', 2013-02-11 FROM Owner), 
(SELECT OwnerID, 'Wally', 2014-09-28 FROM Owner), 
(SELECT OwnerID, 'Bella', 2019-07-04 FROM Owner), 
(SELECT OwnerID, 'Milo', 2017-03-15 FROM Owner));

Но тогда количество столбцов не соответствует значению в строке 1.

Так как я могу оба выбирают OwnerID и создают уникальные значения PetName для каждой строки?

1 Ответ

1 голос
/ 06 апреля 2020

Полагаю, вы хотите вставить данные только в таблицу?

Затем вы должны указать, какой владелец идет с каждым питомцем, и это так же просто, как

INSERT INTO Pet (OwnerID, PetName, DateOfBirth)
VALUES (1, 'Luna', '2013-02-11'), 
(4, 'Wally', '2014-09-28'), 
(6, 'Bella', '2019-07-04'), 
(12, 'Milo', '2017-03-15');

Владельцы должны существовать до этого, конечно.

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