Dav*_*ave 5 t-sql sql-server-2005 foreign-keys foreign-key-relationship
SQL Server 2005.
我正在将外键约束添加到据称不需要它们的应用程序的数据库中.当然,数据变得不可靠,并且在外键领域中存在孤立的条目.
设置:
两个表,TableUser和TableOrder.TableUser具有主键'UserID',TableOrder具有外键'UserID'.
如何在TableUser.UserID中找到TableOrder.UserID没有匹配条目的行?
例如,TableOrder.UserID的值为250,但250没有匹配的TableUser.UserID键.
这是一种方式:
select * from TableOrder where UserID not in (select UserID from TableUser);
Run Code Online (Sandbox Code Playgroud)
编写此类查询有许多不同的方法.
另一种常见的方法是左外连接:
SELECT * FROM TableOrder o
LEFT OUTER JOIN TableUser u ON o.UserID = u.UserID
WHERE u.UserID is NULL
Run Code Online (Sandbox Code Playgroud)
此查询在没有 where 子句的情况下也很有用,可以浏览并查看相应的值(如果存在),并查看哪些值不匹配。