表ASQL - 1個父表,2個表 - 每個行中的子表中返回一行
- PARENTID
- 名稱
表B
- BKey
- PARENTID
- DescB
表C
- CKEY
- PARENTID
- DescC
我需要返回1行進行數據的每個組合排在B/A tha t匹配父ID,並且如果其中一個子表的行數多於另一個,則應爲該描述使用空值返回一行。
例如,如果該數據是如下
表A
1 FirstParent
2 Second Parent
表B
1 1 BDesc1
2 1 BDesc2
3 2 P2BDesc1
表C
1 1 CDesc1
2 2 P2CDesc1
3 2 P2CDesc2
如果我找回基於FirstParent
,結果應該是:
1 FirstParent BDesc1 CDesc1
1 FirstParent BDesc2 NULL
如果我找回基於SecondParent
,結果應該是:
2 SecondParent P2BDesc1 P2CDesc1
2 SecondParent NULL P2CDesc2
反正有這樣做沒有的有工會嗎?
我們有不同的方式來理解問題,您的解決方案是完全有效的。 +1。我認爲整個結果應該結合起來而不使用工會。但它也可能是OP希望每個A.parentID在沒有聯合的情況下被檢索的子結果。 –
這回答了我問的問題。所以,我會標記它的答案。不過,我確實簡化了一下。另外在父表上a是一個ExternalKey列,我通常會通過外部鍵來獲取,因此它必須根據externalkey檢索具有多個parentid的結果集,並且在更改示例時引用表a中的parentid時遇到問題。 – leifre
@leifre - 修改@ t-clausen.dk提供的答案會更容易,以適應您的要求。只需在主查詢中添加一個where子句即可。 '哪裏a.ExternalKey = SomeValue'。 –