[英]SQL: Condition in Left outer Join
选举:
EID PID PlanCode Coverage
2 49791 DELTA FAMILY
2 49791 LIGNA FAMILY
2 49791 BSP FAMILY
2 49792 BSP FAMILY
2 49792 LIGNA FAMILY
2 49792 DELTA FAMILY
2 49793 LIGNA FAMILY
关系表:
EID PID
2 49791
2 49792
2 49793
表Desc:
关系:员工有3个家属
选举:员工为每个Pid选择一个特定的计划
问题:
由于Pid:49793仅注册LigNa计划,因此尝试为剩余计划添加2行,即增量,BSP行
我们可以这样做,因为计划名称不固定,但是我们知道关系表中的依赖项吗?
请建议..
PS:现在可以使用交叉联接工作
如果没错,则尝试为每个EID,PID
组合插入丢失的PlanCode
。 除非我错过了一些内容,否则不太了解LEFT JOIN
用法与该问题的联系
INSERT INTO Election
(EID,PID,PlanCode,Coverage)
SELECT A.EID,A.PID,B.PlanCode,A.Coverage
FROM (SELECT DISTINCT EID,PID,Coverage
FROM Election) A
CROSS JOIN (SELECT DISTINCT PlanCode
FROM Election) B
WHERE NOT EXISTS (SELECT 1
FROM Election C
WHERE A.EID = C.EID
AND A.PID = C.PID
AND B.PlanCode = C.PlanCode)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.