我需要从3个表中获得不同的值。 2 _# {6 F' b2 q% C; `: f当我执行此代码时: ! G: h+ C6 U% z2 b6 F, \select DISTINCT(city) from a,b,c + ^" V! ^9 h0 t/ ^8 l我收到一条错误消息,提示我的“城市”一栏不明确。 , E/ E1 J2 n/ b我也尝试过这个:3 R4 F1 ~$ W, `* v/ R: i& K3 r- D3 T. V
select DISTINCT(city) from a NATURAL JOIN b NATURAL JOIN c) D) b0 V1 G$ E2 x" I6 O
有了这段代码,我的表什么都收不到。 0 V' z4 S+ X3 k# p让我向您展示我正在尝试做的事的示例:( g* s p4 |0 q# Q: m+ l
TABLE A TABLE B TABLE C) ~6 ]+ W0 f8 l) M* I3 W
id | city id | city id | city/ G5 t; F, r: h4 I i) ]3 L5 @
1 | Krakow 1 | Paris 1 | Paris 4 M& l( w# X; c4 |) p, n& E2 | Paris 2 | London 2 | Krakow % l7 U* @* m- l3 F3 | Paris 3 | Oslo0 S; v7 l" g# d7 F8 C3 e
4 | Rome% u6 Z [( |1 U; F
我需要得到这样的结果- z! a+ a: ~+ m
RESULTS) w2 N# H ^( d4 i- Y/ L
city 4 J, Z( ~! X! _4 M; T ---- . J/ [! S% L$ Z& } Krakow& f* t0 W7 P t |- V
Paris' {! w4 d" R1 M o
Rome7 e) P7 `0 i2 R- [
London; N5 z6 F" s5 d, v3 S8 v6 J% B) f
Oslo ) O+ N w, L4 `) e1 ^城市的顺序对我来说并不重要,我只需要拥有所有城市,每个城市应该只有一个代表。; v% _; K$ m2 m: }& w9 e; J; b
任何的想法?我当时想在中使用id's,JOIN但没有连接,所以我不能使用它。" E5 F a- |( l! ~9 K+ a2 T
$ i4 Z# Z6 X. |/ \* j" a* F解决方案:: g8 u. z% U0 p9 F/ A$ ^
5 j" V0 [/ A' N7 D: \" R$ T0 ~3 k( ]" G( l
' }* `/ B" v& T7 L' q4 s
& O' D9 x6 n5 k2 v# B& u
该UNION关键字将返回unique结果列表上的记录。当指定ALL(6 j3 v5 `4 `& t! G; ]7 Q! n
UNION ALL* x! ?* `5 y, t Y( n
)时,将在结果集上保留重复项,OP不需要这些重复项。$ T7 B& q9 S6 }% Y3 j
SELECT city FROM tableA* q8 H! e2 s4 e% n. \7 C. M
UNION 9 ]3 [: t4 h. b% r) B# g- zSELECT city FROM tableB; w7 _( M8 O2 s, p6 u
UNION+ _5 e5 J- z# t
SELECT city FROM tableC% x6 U; Q, K% E SQLFiddle演示& X' T3 J% U5 B$ k