我有一個查詢,我執行三個左外連接,但我只想返回一個結果。多外連接返回一個結果
我問這個問題一段時間回來: Multiple Outer joins return top result
添加到的是,我無法回到最上面一行是若干個連接的路程。
例如:
obj
|id | name |
1 | bear |
2 | cat |
3 | moose |
obj_cn
|id | obj_id | lex_id | ord
| 1 | 2 | 1 | 3
| 2 | 2 | 2 | 2
| 3 | 2 | 3 | 1
| 4 | 1 | 4 | 1
lex
| id | trm_id |
| 1 | 2 |
| 2 | 1 |
| 3 | 4 |
| 4 | 3 |
trm
| id | trm |
| 1 | puma|
| 2 | lion|
| 3 | brn |
| 4 | cgr|
理想情況下,我想在objtermktr表返回有序的最低期限,與其他列一起(和其它連接,這個例子是簡化)。
results
|id | name | trm
|1 | bear | brn
|2 | cat | cgr
|3 | moose | NULL
我最初的想法是建立過上述問題的,但我有比較多個連接沒有任何返回NULL值TRM或返回對象ID 2三次(每次一個學期)的麻煩。
此查詢不工作,但這裏是那種我試圖
SELECT id, name ,
,(select trm from trm t where t.id = a.id and r.ord=a.ord7) as term
from obj
left outer join
(select obj_id, lex_id, MIN(ord) ord7 from obj_cn group by obj_id, lex_id) a
on obj.id = a.obj_id
left outer join lex on a.lex_id = lex.trm_id
left outer join trm on lex.trm_id = trm.id)
任何指導,將不勝感激。謝謝閱讀!
更新:我沒有製作這個數據庫,也無法重構它。
謝謝,我明白你的意思是關於莫名其妙的結構。然而,我沒有重建數據庫的奢侈,只是從數據庫中獲取數據的樂趣。 – user2856332
@ user2856332:已添加到答案。 –
嗯,我甚至沒有考慮派生表。謝謝你的幫助。 – user2856332