2014-04-03 58 views
0

我有兩個表,第一個是父表和子表之間的關聯。另一個表格包含連接到父母的聯繫人,我想將父母的聯繫人添加到他們的每個孩子。 我看不出如何建立SQL查詢如何通過關聯表添加附加到父母的子元素?

第一個表關聯 「級別」

Level_id_parent Level_id_child

1    4 
1    5 
2    6 
3    7 
3    8 
3    9 

二表 「聯繫」

Level_id Contact_id Visible 
1   45   1 
1   56   0 
1   73   0 
2   12   1 
2   13   1 
3   122   0 

在該表「聯繫人」,我想添加對應於LEVEL_1 LEVEL_2的聯繫人。 對於以下結果:

Level_id Contact_id Visible 
1   45   1 
1   56   0 
1   73   0 
2   12   1 
2   13   1 
3   122   0 
---------------------------- 
4   45   1 
4   56   0 
4   73   0 

5   45   1 
5   56   0 
5   73   0 

6   12   1 
6   13   1 


7   122   0 

8   122   0 

9   122   0 

我應該使用遊標來做到這一點嗎?我迷路了。 感謝您的幫助。

+2

您還沒有作出它究竟是清除所有這些表你提到如何相互關聯。如果您發佈架構圖,它會讓您的問題更清晰。 –

+1

只需加入[Levels]和[Select]'[Level_2] As [Level_id],[Contact_id],[Visible]'。然後,您可以將這些結果插入「聯繫人」中,或者如果您只想將結果選擇爲「聯合」,則可以從「聯繫人」中直接選擇。 –

+0

生成最後一個表格的邏輯/規則是什麼? –

回答

1

沒有光標需要,只是一個簡單的聯合在一起的查詢:

select level_id, contact_id, visible 
from contact 
union all 
select level_id_child, contact_id, visible 
from levels l 
inner join contact c 
on l.level_id_parent = c.level_id 
order by level_id 
相關問題