我有一个名为'Resources'的表,如下所示:
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
(实际上,“地址”字段确实添加了信息,而不仅仅是组合已存在的信息。)
我目前正在使用以下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
这对我有用,但我担心我没有看到人们在其他地方的单一连接中使用这么多AND,所以不知道这是不是一个坏主意。 (这是简化版本 - 在另一种情况下,我可能需要在单个连接中最多8个AND)这是解决问题的最佳方法,还是有更好的解决方案?
由于
答案 0 :(得分:1)
加入多列很好。你不必“害怕”这个。
至于“更好的方式”。我建议创建一些变量表,在其中放入一些数据,并在此处发布TSQL(DDL和DML)。然后你可以得到一些可能的选择。你的问题在目前是模糊的(关于你的问题的“有更好的方法”部分)