2016-04-28 7 views
0

内部結合を使用していますが、両方のテーブルから別の値を取得したいのですが、私のクエリでは両方のテーブルからカラムを選択します。私はjoinを使用しているときに2つのテーブルから区別する必要があります

select distinct t.countryid from (select countryid,countryname,city from country 
inner join city 
on country.id=city.id) as t 

のような明確な使用することですが、私は私がSELECT DISTINCT国のような何かをしたい、この

のような街を利用することはできませんよ

select countryid,countryname,city from country 
inner join city 
on country.id=city.id 

よう 何か、都市

する方法

+0

'国名を国名から選択してください。 インナーに参加する都市 on country.id = city.id'? –

+0

@FelixPamittanどういう意味ですか? –

+0

上記のクエリで正しい結果が得られますか? –

答えて

0

、あなたはすべての異なる国のペアを取得したいです。このことを念頭に置いて、このような何かを行うことができます。これは、加入後COUNTRYNAME、市の全ての個別のペアを提供します

WITH CTE 
AS 
(
SELECT CountryID, CountryName, City 
FROM Country 
INNER JOIN City 
    on Country.Id = City.id 
) 
SELECT DISTINCT CountryName, City 
FROM CTE 

0

この場合、私はあなたは2つの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 
+0

こんにちは@Rene私は私のクエリであなたのロジックを試しましたが、私はまだ重複を得ています –

+0

あなたのテーブル構造は正確に何ですか?重複は、異なる国々で同じ名前の都市である可能性はありますか? – Tyron78