有人可以給我正確的語法,我怎樣才能插入和更新數據使用子查詢?插入SQL與子查詢
SELECT PersonID
FROM Authors
WHERE PersonID IN (select personID
from person
where last_name = 'Smith' AND first_name = 'Barry'
);
並更新符合此示例人員標準的某些列。
有人可以給我正確的語法,我怎樣才能插入和更新數據使用子查詢?插入SQL與子查詢
SELECT PersonID
FROM Authors
WHERE PersonID IN (select personID
from person
where last_name = 'Smith' AND first_name = 'Barry'
);
並更新符合此示例人員標準的某些列。
Update Authors
set Field1='x', Field2='Y', Field3='Z'
FROM Authors
WHERE PersonID IN (select personID
from person
where last_name = 'Smith' AND first_name = 'Barry'
);
謝謝,提供了一個如何使用插入操作的例子嗎?例如,將值25和Y插入到Fee列中並使用我提供的子查詢發佈(查找某個人的作者ID)? – krosiris
這是你的意思嗎? 插入作者(費用,已發佈)從作者中選擇25,'Y'Where PersonID IN(從人0中選擇personID ,其中last_name ='Smith'AND first_name ='Barry' ); – madturbocow
insert into authors(personID, field1, field2)
select personID, 'data1', 'data2'
from person
where last_name = 'Smith' AND first_name = 'Barry'
關於插入,我不是你要插入到什麼表100%清楚。如果您想將25和Y放入作者表中的費用和已發佈列,那麼這是根據madtrubocow所做的更新,而不是插入,儘管這是我將如何做的:
UPDATE a
SET Fee=25,Published='Y'
FROM
Authors a
WHERE EXISTS
(SELECT 1 FROM Person p WHERE a.PersonID=p.PersonID
AND p.last_name = 'Smith' AND p.first_name = 'Barry')
如果要插入行有一個的AuthorID,手續費及發佈的列不同的表,這將是這樣的:
INSERT INTO NewTable(AuthorID,Fee,Published)
SELECT AuthorID,25,'Y'
FROM Authors a
WHERE EXISTS
(SELECT 1 FROM Person p WHERE a.PersonID=p.PersonID
AND p.last_name = 'Smith' AND p.first_name = 'Barry')
我要指出,我只會寫這些查詢這樣子的話PersonID是Authors表上的唯一列,First和Last Name的組合在Person表上是唯一的。如果其中任何一個不是由數據庫強制執行的,則需要考慮如何確保不會插入或更新比您想要的更多的行。
您可以用單個查詢插入記錄。您可以使用單個查詢更新記錄。要做到這兩點,你需要兩個查詢。 –