我有4个表,并希望以最有效的方式返回表中的键映射到其正确的条目。连接表并返回2个单独的条目与NULL值
表A列:
[ SVC_PREFIX | SVC_CD | ... ]
表B列:
[ SVC_PREFIX | SVC_CD | SVC_ID |... ]
表C列:
[ SVC_ID | ... ]
表d列:
[ SVC_ID | ... ]
表A通过SVC_PREFIX和SVC_CD映射到表B然后表B然后通过SVC_ID负责检索表C和D表C和D几乎相同,除了表D具有比C少几个列的列C例如,C可能有一个isGood而isSilly,但D只会有isSilly。 是否有可能检索条目,以便D将用isSilly的NULL值提取,而C将带来相应的数据?
下面是一个例子: 表A列:
[ SVC_PREFIX | SVC_CD | anotherData ]
[ 111 | 123 | AAA ]
表B列:
[ SVC_PREFIX | SVC_CD | SVC_ID ]
[ 111 | 123 | 007]
表C列:
[ SVC_ID | isGood | isHappy ]
[ 007 | Y | Y ]
表d列:
[ SVC_ID | isGood ]
[ 007 | Y ]
数据我想检索:
[ SVC_PREFIX | SVC_CD | anotherData | SVC_ID | isGood | isHappy ]
实际数据
[ 111 | 123 | AAA | 007 | Y | Y ]
[ 111 | 123 | AAA | 007 | Y | NULL ]
我想要显示C和D的表作为单独的行。
目前,我有一个隐含的加入,但并没有达到我的愿望,结果...
SELECT *
FROM A,B,C,D
WHERE A.SVC_PREFIX = B.SVC_PREFIX
AND A.SVC_CD = B.SVC_CD
AND B.SVC_ID = C.SVC_ID
AND B.SVC_ID = D.SVC_ID
AND C.SVC_ID = D.SVC_ID
感谢您的帮助!
注意:数据库有密钥。和强大的类型。看起来你可以加入A和B,并且加入B&C和B&D(或C&D)。 – wildplasser
这个记录来自'[111 | 123 | AAA | 007 | Y | NULL]'?我的意思是为什么有'null'? –
@JohnWoo从技术上说,这个记录不存在。然而,null表示它来自表D,它与C的数据基本上是相同的数据,除了它没有,在这个例子中,这是很好的 – bigbitecode