使用连接时,2个表需要不同的值

时间:2016-04-28 07:10:07

标签: sql-server-2008

我正在使用内部联接,我想要从表和我的查询中的不同值我从表中选择列。

之类的东西
select countryid,countryname,city from country 
inner join city 
on country.id=city.id

我可以使用与

类似的区别
select distinct t.countryid from (select countryid,countryname,city from country 
inner join city 
on country.id=city.id) as t

但我无法像这样使用城市

我想要选择不同的国家,城市

怎么做

2 个答案:

答案 0 :(得分:0)

在这种情况下,我建议你使用两个ctes。像这样:

WITH cteCountry AS(
SELECT DISTINCT countryid, countryname
  FROM country),
cteCity AS (
SELECT DISTINCT countryid, cityid, cityname
  FROM city
)
SELECT co.countryid, co.countryname, ci.[city]
FROM cteCountry AS co
INNER JOIN cteCity AS ci ON co.countryid = ci.countryid

答案 1 :(得分:0)

根据我对此的理解,您希望在初次加入后获得所有不同的国家/城市对。考虑到这一点,可以这样做:

<my-api
  users="{{users}}"
  products="{{products}}">
</my-api>

这将为您提供加入后所有不同的国家/地区和城市对。