我正在尝试从名为files的表中更新表命名目录,当我使用下面的sql时它只更新第一行
UPDATE dbo.directory
SET navigateurl = (SELECT files.filename
FROM dbo.files
INNER JOIN directory
ON dbo.directory.id = files.id
WHERE ( files.id = directory.id ));
在表格文件中我有:
id | filename
1 | index.html
1 | index2.html
1 | index3.html
2 | aio.html
2 | aaa.html
等等
并且在表目录中我有:
id | parent_id | name | navigateurl
我想要做的是能够更新目录表,以便表目录中的字段parent_id将更新为文件的字段id,字段navigateurl将更新为filename其中directory.id = files.id ,我上面的查询仅影响
第一行
答案 0 :(得分:0)
将Where子句放在第二个选择.i意味着将它放在第一个选择中,如下所示:
UPDATE dbo.directory
SET navigateurl = (SELECT files.filename
FROM dbo.files
INNER JOIN directory
ON dbo.directory.id = files.id )
WHERE ( files.id = directory.id ) ;