Может ли кто-нибудь помочь мне с этим оператором INSERT SQL? - PullRequest
1 голос
/ 12 февраля 2011

У меня есть таблица, подобная следующей:

owner Pet
__________
Bob   Joe
Sam   Rob
Bob   George
Phil  Marge

Теперь я хочу создать оператор INSERT для нового владельца, Ника. Я хочу сделать свое заявление о вставке так, чтобы на каждого питомца, которым владеет Боб, Ник принадлежал одноименное имя.

Я пытаюсь сделать это, чтобы выполнить мою задачу:

INSERT INTO TABLE
VALUES ('Nick', Pet)
SELECT Pet FROM Table T
WHERE T.owner = 'Bob')

Но вышеупомянутое не работает. Может кто-нибудь сказать, пожалуйста, что я делаю не так?

Ответы [ 6 ]

5 голосов
/ 12 февраля 2011

Вы были близки:

INSERT INTO TABLE (owner, Pet)
SELECT 'Nick', Pet FROM Table WHERE owner = 'Bob'
3 голосов
/ 12 февраля 2011

Я думаю, что это сделает.

Insert Into Table (Pet, Owner)
Select Pet, 'Nick' From Table Where Owner = 'Bob'
0 голосов
/ 12 февраля 2011
INSERT Pets (owner, Pet)
SELECT 'Nick', Pet
FROM Pets
WHERE owner = 'Bob'

Предполагается, что ваша таблица называется "Домашние животные".Запустите Select без вставки, чтобы увидеть строки, которые будут вставлены первыми.

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

хранит питомца Инна Вар и использует во втором запросе.

SELECT Pet INTO @PET FROM Table WHERE owner = 'Bob')
INSERT INTO TABLE VALUES ('Nick', @PET)

Это то, что вы хотите?

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

это будет делать то, что вы хотите:

create table t_test3 ( ownr varchar(20) not null, pet varchar(20) not null);
insert into t_test3 (ownr, pet) values ('bob', 'joe');
insert into t_test3 (ownr, pet) values ('sam', 'rob');
insert into t_test3 (ownr, pet) values ('bob', 'george');
insert into t_test3 (ownr, pet) values ('phil', 'marge');

insert into t_test3 
     select 'nick', pet from t_test3 where ownr = 'bob';

select * from t_test3;
0 голосов
/ 12 февраля 2011

Можем ли мы сделать это еще проще?

SELECT 'Nick', pet INTO table FROM table WHERE Owner = 'Bob'
...