在 SQL Server 中使用不存在
Posted
技术标签:
【中文标题】在 SQL Server 中使用不存在【英文标题】:Using not exists in SQL Server 【发布时间】:2015-05-18 09:00:14 【问题描述】:我有两张桌子。
Doctype
-----------
doctypeid
doctype
DocumentList
-----------------
doclistid (pk),
projectid,
doctypeid,
docfile(binary)
我想从documentlist
表中获取所有projectid
和doctypeid
,其中DocumentList
表中不存在doctypeid
列表(来自Doctype
表)。
【问题讨论】:
你是在断言你想要一个表中的所有 doctypeid,而 doctypeid 不在表中? 如果您先搜索,有很多示例说明如何执行此操作:***.com/search?q=%5Bsql-server%5D+not+exists Doctypeid 是主列表。 DocumentList 表包含多个具有 doctypeid 的文档。我想获取不在文档列表表中的所有 doctypeid。这样我就可以提醒用户这些文件仍然丢失。 表名已更正。 【参考方案1】:如果我理解你的问题,你可能想使用这样的东西:
SELECT projectid, doctypeid
FROM DocumentList
WHERE doctypeid NOT in(1,2,3,4...n)
【讨论】:
【参考方案2】:SELECT MD.projectid ,
MD.doctypeid
FROM my_DocumentList MD
WHERE NOT EXISTS ( SELECT Mdt.doctypeid
FROM MY_Doctype Mdt
WHERE doctypeid IN ( SELECT MD.doctypeid ) )
【讨论】:
【参考方案3】:如果您想要DocumentList
中的projectid
和doctypeid
列表,它的doctypeid 在Doctype
中不存在,请使用:
SELECT
projectid,
doctypeid
FROM
DocumentList
WHERE
NOT EXISTS(SELECT 1
FROM Doctype
WHERE Doctype.doctypeid = DocumentList.doctypeid)
【讨论】:
以上是关于在 SQL Server 中使用不存在的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server不存在或访问被拒绝
错误信息:无法连接: SQL Server 不可用或不存在。