我有几张桌子:
- “DCDetails”表包含一些诊断中心的主数据。
- 包含公司主数据的“CompanyDetails”表
- 包含调查的“调查”表(意味着要进行的一组医学测试)
这些是我的主桌。
我还有一些映射表: 1.“CompanyDCMap”表,其中包含公司到诊断中心的映射 2.“InvestigationDCMap”表,其中包含调查到诊断中心(或简称 DC)的映射
我必须根据以下两个标准过滤一组 DC:
- DC 属于“CompanyDCMap”并且
- 在 (1) 中过滤的 DC 中,它也属于“InvestigationDCMap”表。
鉴于我有“CompanyDetails”和“Investigation”表的主键,我如何为此编写查询,以便获得位于 CompanyDCMap 和 InvestigationDCMap 中的 DC。
我几乎放弃了,我想不出同时过滤两组的查询。
请帮助我。
更新 架构:CompanyDetails 表:
CompanyID(PRIMARY KEY), CompanyName(NVARCHAR(100))
1 Company1
2 Company2
3 Company3
调查表:
InvestigationID(Primary key) , InvestigationName(NVARCHAR(100))
1 HIV+ Blood Test
2 TMT
3 Urine Test
DC明细表:
DCID(PRIMARY KEY), DCName(NVARCHAR(100))
1 DC1
2 DC2
3 DC3
公司DCMap表
CompanyDCMapID(Primary key), CompanyID(Foreign key), DCId(Foreign Key)
1 1 1
2 1 2
3 2 2
4 2 3
5 3 1
6 3 3
调查DCMap表
InvestigationDCMapID(Primary Key), InvestigationID(Foreign Key), DCId(Foreign Key)
1 1 1
2 1 3
3 2 2
4 2 3
给定 CompanyID = 1 和 InvestigationID = 2、SELECT DCId 和 DCName = 的查询的预期输出
DCId(Int) DCName(NVARCHAR(100))
2 DC2