34

3 つのテーブルから個別の値を取得する必要があります。

このコードを実行すると:

select DISTINCT(city) from a,b,c 

私の列「都市」があいまいであるというエラーが表示されます。

また、私はこれを試しました:

select DISTINCT(city) from a NATURAL JOIN b NATURAL JOIN c

このコードでは、テーブルから何も受け取りません。

私がやろうとしていることの例をお見せしましょう:

TABLE A               TABLE B                TABLE C
id  |  city           id  |  city            id  | city
1   |  Krakow         1   |  Paris           1   | Paris
2   |  Paris          2   |  London          2   | Krakow
3   |  Paris          3   |  Oslo
4   |  Rome

そして、私はこのような結果を得る必要があります

RESULTS
 city
 ----
 Krakow
 Paris
 Rome
 London
 Oslo

都市の順序は私にとって重要ではありません。すべての都市が必要であり、各都市の表現は 1 つだけである必要があります。

何か案が?で使おうと思っていid'sたのJOINですが、接続されていないので使えません。

4

2 に答える 2

68

UNIONキーワードはunique、結果リストのレコードを返します。ALL( UNION ALL ) を指定すると、OP が望まない結果セットに重複が保持されます。

SELECT city FROM tableA
UNION
SELECT city FROM tableB
UNION
SELECT city FROM tableC

結果

╔════════╗
║  CITY  ║
╠════════╣
║ Krakow ║
║ Paris  ║
║ Rome   ║
║ London ║
║ Oslo   ║
╚════════╝
于 2013-03-09T12:41:50.547 に答える
4
SELECT city FROM A
UNION DISTINCT
SELECT city FROM B
UNION DISTINCT
SELECT city FROM C
于 2013-03-09T12:44:32.113 に答える