回答

收藏

如何从多个表中选择不同的值

技术问答 技术问答 281 人阅读 | 0 人回复 | 2023-09-14

我需要从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

) P# f$ v& r9 I3 E5 P2 x# o! X结果
. _* z6 B9 [- A3 \: o$ B, ]( J鈺斺晲鈺愨晲鈺愨晲鈺愨晲鈺愨晽- ~  k; u& h% d& d* h, D
鈺?  CITY  鈺?
+ W( k3 K2 ?9 a2 ~8 A, N$ {鈺犫晲鈺愨晲鈺愨晲鈺愨晲鈺愨暎
* ~- e& W% a1 H5 v鈺? Krakow 鈺?! z7 |$ j3 b7 L2 Y
鈺? Paris  鈺?
8 U0 }0 T) Z5 K! J  b/ B鈺? Rome   鈺?
4 {2 ?- R6 l+ h! Q/ q5 C鈺? London 鈺?
) ?# u1 L/ P" s: M; B  }* ^鈺? Oslo   鈺?
" j' p; n9 I) \/ L- A鈺氣晲鈺愨晲鈺愨晲鈺愨晲鈺愨暆
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则