SQL-可能一对多加入?

时间:2014-01-21 00:40:19

标签: sql join inner-join

我正在编写一个SQL查询,需要识别具有相同名称的地址和具有多个子名称的城市。举个例子,我需要找出类似于:CityA的100 Main Street,Lucas Estates的子名称和CityA的150 Main Street,其子名为Valley Estates。这是我到目前为止所拥有的......

SELECT A.NAME ,
       A.CITY ,
       A.SUBNAME
FROM       ADDRESS A
INNER JOIN STREETS B ON A.NAME = B.Name
WHERE A.NAME = B.NAME
  and (    A.CITY = B.LCITY
        or A.CITY = B.RCITY
      )
  and ISNULL( A.SUBNAME , '' ) != '' 
ORDER BY A.SUBNAME

所以这给了我与街道相匹配的地址并有一个子名称。我需要查看具有多个子名称的地址和街道。有没有人有任何建议?

1 个答案:

答案 0 :(得分:0)

如果这样,“我正在编写一个需要识别具有相同名称的地址和具有多个子名称的城市的SQL查询”,那么您真正想要做的就是自我加入可能就是您想要的。

select a.name, a.city, a.subname
from address a join address b on a.name = b.name
and a.city = b.city
and a.subname <> b.subname
order by 1, 2