使用不同的值更新多个行

时间:2013-09-13 13:07:22

标签: sql sql-server

我有这3张桌子

表格书籍(我想用1个字母用逗号分隔的类别填充类别列)

id      categories
1       null
2       null
3       null
...     ...

表类别

id      name
1       adventure
2       horror
...     ...

表BooksCategories(一本书可以有多个类别)

bookid    categoryid
1         1
1         3
2         2
3         1
3         2
...       ...  

我有一个查询,给我这样的东西

bookid      categories
1           horror, adventure
2           action,...,...

现在,我想将books表的列类更新为查询的相应值。是否可以在更新中执行此操作?

谢谢,我希望它足够清楚

1 个答案:

答案 0 :(得分:4)

您可以使用表格JOIN books查询,以便更新列,

UPDATE  a
SET     a.categories = b.categories
FROM    books a
        INNER JOIN
        (
            -- paste your query here
            -- SELECT   bookid, categories,.....
        ) b ON  a.id = b.bookid