我有一个表在其他表中有bookauthorID的书籍是作者
BOOK
ID BOOK NAME AUTHORID
0 A NULL
1 B NULL
2 C NULL
AUTHOR
BOOKID AUTHORID
0 123
1 1234
2 12345
现在我必须在作者表中填写Book表中的AuthorID列,其中BOOK.ID = AUTHOR.BOOKID,因为BOOK.AUTHORID列已在表格中添加
到目前为止
我有这个
WITH ALLBOOKSANDAUTHORIDS AS
(
SELECT * FROM BOOK INNER JOIN AUTHOR on BOOK.ID = AUTHOR.BOOKID
)
我现在有一个表格,告诉每本书及其作者ID
但是如何使用正确的值更新BOOK.AUTHORID,从Author表中获取值并将它们放入书中?
它就像一个for循环,转到Book表中的每一行并检查Author表中的哪个ID匹配,然后获取AUTHORID并在book表中更新它。
请告诉我们如何编写SQL?
谢谢
艾登
答案 0 :(得分:1)
您可以使用update
/ join
:
update b
set b.authorid = a.authorid
from book b join
author a
on b.id = a.bookid
where b.authorid is null;
答案 1 :(得分:1)
只需加入这些表并进行更新即可。
update book b join author a on (a.bookid=b.id)
set b.AUTHORID=a.AUTHORID
答案 2 :(得分:1)
首先ID不能 Zero ,而你的问题可能是simaple带连接的更新语句
Update B
SET B.AUTHORID=A.AUTHORID
FROM Book B
INNER JOIN AUTHOR A ON A.BOOKID = B.ID
答案 3 :(得分:1)
UPDATE BOOK
SET AUTHORID = AUTHOR.AUTHORID
FROM BOOK INNER JOIN AUTHOR ON BOOK.ID = AUTHOR.BOOKID
答案 4 :(得分:0)
我们也可以这样做
更新b 设置b.AUTHORID =(从AUTHOR中选择前1位a.AUTHORID a 其中b.ID = a.BOOKID)