2013-02-19 90 views
1

我稱之爲「資源」,看起來像這樣的表:加入同一個表之間的多個領域

Country  City  Street  Headcount 
     UK   Halifax High Street  20 
United Kingdom Oxford High Street  30 
    Canada  Halifax North St  40 

由於位置字段的性質,我需要把它們映射到一個單一的「地址」場,所以我也有如下表稱爲「地址」:

Country  City  Street     Address 
     UK   Halifax High Street  High Street, Halifax, UK 
    Canada  Halifax North St  North Street, Halifax, Canada 
United Kingdom Oxford High Street  High Street, Oxford, UK 

(在現實中,地址字段確實增加了信息,而不是僅僅結合是什麼已經有了)

我ç urrently使用下面的SQL生成查詢:

SELECT Resources.Country, Resources.City, Resources.Street, Addresses.Address, 
     Resources.Headcount 
FROM Resources 
INNER JOIN Addresses ON Resources.Country = Addresses.Country 
     AND Resources.City = Addresses.City 
     AND Resources.Street = Addresses.Street 

這對我的作品,但我很擔心,我還沒有看到人們用這個許多細節在單個連接其他地方,所以不知道這是否是一個壞主意。 (這是簡化的版本 - 在另一種情況下,我可能需要多達8個AND)這是解決問題的最佳方式,還是有更好的解決方案?

謝謝

+0

我已經添加了對我的問題答案的評論信息。有了額外的信息,我的答案現在是多餘的,所以我刪除了它。 – 2013-02-19 19:44:05

回答

1

加入多列是好的。你不必「恐懼」這一點。

至於「更好的方法」。我會建議創建一些變量表,將一些數據放入其中,並在這裏發佈TSQL(DDL和DML)。然後你可以得到一些可能的選擇。你的問題目前很模糊(關於你的問題「有沒有更好的辦法」)