如何选择没有关联的所有记录? SQL
问题描述:
我有4个表我是从拉:如何选择没有关联的所有记录? SQL
Company
ID
Code
Department
ID
Name
Cost_Center
ID
Number
Company_Department_Cost_Center
CompanyID
DepartmentID
CostCetnerID
有3家公司的,33个部门和25个成本中心。
我正在设计一个带有下拉的Web窗体,每个表都有一个允许用户更新Company_Department_Cost_Center表的表格。当用户从第一个下拉列表中选择公司时,我需要过滤第二个以仅包含部门表和Cost_Center表中不存在存在关系的数据。
因此,如果用户选择公司1,则需要选择与公司1没有关系的所有部门,然后选择所有没有关系的成本中心。
我不知道如何解决这个问题,我可以用SQL,但是这个问题让我难以理解。
有关如何解决这个问题的任何建议?
答
使用not exists()
和@CompanyId
代表您的参数。
select d.*
from Department d
where not exists (
select 1
from Company_Department_Cost_Center cdcc
where cdcc.CompanyId = @CompanyId
and cdcc.DepartmentId = d.Id
)
而对于第二个查询Cost_Center
select cc.*
from Cost_Center cc
where not exists (
select 1
from Company_Department_Cost_Center cdcc
where cdcc.CompanyId = @CompanyId
and cdcc.DepartmentId = @DepartmentId
and cdcc.CostCenterId = cc.Id
)
是的!太棒了。我不知道“选择1”。感谢您的帮助,并教我一些东西! – user3691838
@ user3691838乐意帮忙! – SqlZim