我有一個這樣的表結構的共同祖先(其實有更多的層次):找到一個樹形結構表
------------------------------------------
|region1|region2|region3|region4|postcode|
|-------|-------|-------|-------|--------|
|a |x |i | |1 |
|a |y |i | |2 |
|a |y |j | |2 |
|a |z |k | |3 |
|b |u |m | |4 |
|b | |n | |4 |
|c | | | |5 |
|c |q | | |6 |
------------------------------------------
因此,例如,a => x => i
和a => y => i
有不同的地方,但兩者在相同的區域1 a
。
我想知道每個郵政編碼可以覆蓋哪個區域。
例如,代碼2
涵蓋區域a => y => i
和a => y => j
,因此這些共同的祖先是a => y
。
這裏是關於例如運行查詢所需的輸出:
------------------------------------------
|postcode|region1|region2|region3|region4|
|--------|-------|-------|-------|-------|
|1 |a |x |i | |
|2 |a |y | | |
|3 |a |z |k | |
|4 |b | | | |
|5 |c | | | |
|6 |c |q | | |
------------------------------------------
我真的不知道如何攻擊這個問題。我想通過郵編分區,但這仍然留下找到每個分區內共同的祖先的問題...
一個樹狀結構表是將每一行都有它的父行的引用的表。我不知道你在那裏做什麼,我不明白你用'a => x => i''表示的意思。另外,根據我的經驗,無論何時我遇到具有名稱列相似列的表僅有一個(數字或非數字)後綴的表時,某個人在某個地方不理解數據庫規範化。 – 2015-02-06 15:49:18
這當然不是標準化的,我意識到這一點。我可能會這樣做,但如果有解決方案,我會感興趣。 'a => x => i'表示它是示例表中的第一行(region1 = a,region2 = x,region3 = i) – 2015-02-06 15:52:18
查看https://msdn.microsoft.com/zh-cn/ gb/library/bb677173%28v = sql.110%29.aspx – Elliveny 2015-02-06 15:54:59