有人可以给我正确的语法,我怎样才能插入和更新数据使用子查询?插入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表上是唯一的。如果其中任何一个不是由数据库强制执行的,则需要考虑如何确保不会插入或更新比您想要的更多的行。
您可以用单个查询插入记录。您可以使用单个查询更新记录。要做到这两点,你需要两个查询。 –