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

(实际上,地址字段确实添加了信息,而不是仅仅组合已有的信息。)

我目前正在使用以下 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)这是解决问题的最佳方法,还是有更好的解决方案?

谢谢

4

1 回答 1

1

加入多个列很好。你不必“害怕”这一点。

至于“更好的方法”。我建议创建一些变量表,将一些数据放入其中,然后在此处发布该 TSQL(DDL 和 DML)。然后,您可以获得一些可能的替代方案。您的问题目前含糊不清(关于您问题的“有没有更好的方法”部分)

于 2013-02-19T19:12:26.293 回答