坚持三个表之间的连接

时间:2017-12-15 17:11:03

标签: sql sql-server

我有三个表要加入:规格,结果,附录。规格可能有也可能没有结果。结果可能有也可能没有附录。问题是规格可能会也可能没有附录而没有结果。我一直无法找到以我期望的方式显示此数据的连接查询 - 这将是规格 - >与这些规格相关的结果 - >与这些结果相关的附录&规格 - >与这些规格相关的附录。结果 - 附录工作或规格 - 附录工作,但我无法得到两者。这些表中没有设置实际的主/外键关系,因为它是一种向后工程方案。

  • 附录将始终具有相关规格(由longspecnum确定)。
  • 附录有时会有相关结果(由longspecnum& resultcode确定)。
  • 结果将始终具有相关的规格(由longspecnum确定)。

我用一个精简的例子设置了一个小提琴。基本上这里缺少的部分是我想在查询结果的最后3行看到相关的ID和specnum。

http://sqlfiddle.com/#!6/0ecc8/2

SELECT [specs].[id], [specs].[specnum], [results].[resultcode], [results].[result], [addendums].[resultcode], [addendums].[resultaddendum]
FROM specs 
LEFT OUTER JOIN results ON specs.specnum = results.specnum 
FULL OUTER JOIN addendums ON specs.specnum = addendums.specnum AND results.resultcode = addendums.resultcode

这些是我得到的结果:

+---------+-----------+------------+----------+------------+--------------------------+ | id | specnum | resultcode | result | resultcode | resultaddendum | +---------+-----------+------------+----------+------------+--------------------------+ | 4648553 | 043020628 | CBm | 0.2 | (null) | (null) | +---------+-----------+------------+----------+------------+--------------------------+ | 4648553 | 043020628 | CEZ | SEE NOTE | CEZ | in ml/min/1.73 sq meters | +---------+-----------+------------+----------+------------+--------------------------+ | 4648553 | 043020628 | CEY | >60 | CEY | Ref Rng: GFR estimate | +---------+-----------+------------+----------+------------+--------------------------+ | 4648553 | 043020628 | CEY | >60 | CEY | failure <15 | +---------+-----------+------------+----------+------------+--------------------------+ | 4648554 | 043046806 | HBC | 13.3 | (null) | (null) | +---------+-----------+------------+----------+------------+--------------------------+ | 4648554 | 043046806 | HEg | SEE NOTE | HEg | No slide review | +---------+-----------+------------+----------+------------+--------------------------+ | 4648555 | 043046815 | HNY | 1 | (null) | (null) | +---------+-----------+------------+----------+------------+--------------------------+ | 2555123 | 111219672 | CEg | 117 | (null) | (null) | +---------+-----------+------------+----------+------------+--------------------------+ | 2555124 | 111203082 | (null) | (null) | (null) | (null) | +---------+-----------+------------+----------+------------+--------------------------+ | (null) | (null) | (null) | (null) | Rij | VIT D 25 | +---------+-----------+------------+----------+------------+--------------------------+ | (null) | (null) | (null) | (null) | Rir | 0-17 years | +---------+-----------+------------+----------+------------+--------------------------+ | (null) | (null) | (null) | (null) | Riz | Optimum Level: 30-80 | +---------+-----------+------------+----------+------------+--------------------------+

这些是我想要的结果:

+---------+-----------+------------+----------+------------+--------------------------+ | id | specnum | resultcode | result | resultcode | resultaddendum | +---------+-----------+------------+----------+------------+--------------------------+ | 4648553 | 043020628 | CBm | 0.2 | (null) | (null) | +---------+-----------+------------+----------+------------+--------------------------+ | 4648553 | 043020628 | CEZ | SEE NOTE | CEZ | in ml/min/1.73 sq meters | +---------+-----------+------------+----------+------------+--------------------------+ | 4648553 | 043020628 | CEY | >60 | CEY | Ref Rng: GFR estimate | +---------+-----------+------------+----------+------------+--------------------------+ | 4648553 | 043020628 | CEY | >60 | CEY | failure <15 | +---------+-----------+------------+----------+------------+--------------------------+ | 4648554 | 043046806 | HBC | 13.3 | (null) | (null) | +---------+-----------+------------+----------+------------+--------------------------+ | 4648554 | 043046806 | HEg | SEE NOTE | HEg | No slide review | +---------+-----------+------------+----------+------------+--------------------------+ | 4648555 | 043046815 | HNY | 1 | (null) | (null) | +---------+-----------+------------+----------+------------+--------------------------+ | 2555123 | 111219672 | CEg | 117 | (null) | (null) | +---------+-----------+------------+----------+------------+--------------------------+ | 2555124 | 111203082 | (null) | (null) | Rij | VIT D 25 | +---------+-----------+------------+----------+------------+--------------------------+ | 2555124 | 111203082 | (null) | (null) | Rir | 0-17 years | +---------+-----------+------------+----------+------------+--------------------------+ | 2555124 | 111203082 | (null) | (null) | Riz | Optimum Level: 30-80 | +---------+-----------+------------+----------+------------+--------------------------+

1 个答案:

答案 0 :(得分:2)

这可能是对的吗?

recurrenceInterval

如果您不喜欢首先指定完整连接的方式,有很多方法可以重写。

相关问题