比方说,我在SQL Server 2008中,Users
,Site
和UserSite
3个表:寻找失踪的连接表的SQL Server记录
+-------+ +-------+ +-------------+
| User | | Site | | User Site |
+-------+ +-------+ +-------------+
| User1 | | Site1 | | User1 Site1 |
| User2 | | Site2 | | User1 Site2 |
| User3 | +-------+ | User1 Site3 |
+-------+ | User2 Site1 |
| User2 Site3 |
| User3 Site1 |
+-------------+
期望的结果:对于每个User
和Site
组合必须有一个记录在UserSite
这样的:
+-------------+
| User Site |
+-------------+
| User1 Site1 |
| User1 Site2 |
| User1 Site3 |
| User2 Site1 |
|*User2 Site2*| Inserted
| User2 Site3 |
| User3 Site1 |
|*User3 Site2*| Inserted
|*User3 Site3*| Inserted
+-------------+
我只能插入新记录,并且不能从头改写表。
有没有办法与SQL Server做到这一点?
我不能截断表。第二个查询可能会起作用,我现在试试吧 – Szer
像魅力一样工作。谢谢! – Szer
@Gordon为什么你的第二个查询比用户站点表字段为空的“用户站点”表的左外连接更可取? –