繁体   English   中英

SQL:左外部联接中的条件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM