回答

收藏

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

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

我需要从3个表中获得不同的值。! `% b: Z8 b! {9 F) L3 e6 G6 C
当我执行此代码时:  s, r9 q4 Z' Q* }; B
select DISTINCT(city) from a,b,c. K& h0 V% v& G4 ?
我收到一条错误消息,提示我的“城市”一栏不明确。
% r& V2 U! j2 b: o我也尝试过这个:
& a3 _, z3 O3 J2 J% c1 \select DISTINCT(city) from a NATURAL JOIN b NATURAL JOIN c% o' q& t1 @7 ?5 k: `+ P
有了这段代码,我的表什么都收不到。. k8 p- D" A& v& X% t% O
让我向您展示我正在尝试做的事的示例:/ w/ T& F/ j0 Q9 _. `  H) m9 X
TABLE A               TABLE B                TABLE C& |3 {+ H* m! y5 `
id  |  city           id  |  city            id  | city0 {! ?8 I" T3 n- S7 Y7 J3 N5 o( r
1   |  Krakow         1   |  Paris           1   | Paris% ]  S- m! o# g
2   |  Paris          2   |  London          2   | Krakow9 N# {1 k! Z+ u+ k9 @4 F
3   |  Paris          3   |  Oslo
% R% R# `3 v9 ]' _0 p4   |  Rome! Z! d* s& n5 Q6 X
我需要得到这样的结果  x3 J1 _: ~3 H$ c
RESULTS
; n" M6 J3 d# {) x' M$ S$ o& ~  ? city. p& v5 f' u+ b6 Y3 ?1 P2 G
----3 s  B" c8 V/ L$ e* e
Krakow' z; ~, y6 [/ V% w8 o
Paris
9 L3 L7 w% h, h! a Rome
! _: s$ I: S* F$ I7 m* b London
( t0 m) D3 v' E6 l8 o1 J Oslo
, h. c* N8 |. ]9 ^* I* G城市的顺序对我来说并不重要,我只需要拥有所有城市,每个城市应该只有一个代表。
6 p5 u( Y7 V/ L* U% k' o- p/ M任何的想法?我当时想在中使用id's,JOIN但没有连接,所以我不能使用它。8 m5 T( e* \. T+ B1 h- l! `
                % r4 @9 d2 Y4 [4 `" e- i7 i
解决方案:
9 W- S7 B; r* J                " U% q* c! X/ ]5 O+ ]

# M  u  V. V" M1 Z$ B. O) Y4 a& X" c9 N- v( |
                该UNION关键字将返回unique结果列表上的记录。当指定ALL(+ N3 [2 F) M) h7 N6 j
UNION ALL
4 F1 ^$ G' z( j)时,将在结果集上保留重复项,OP不需要这些重复项。0 k% R: d/ v) s& R
SELECT city FROM tableA! t' j9 Q% Y$ {0 a6 U
UNION, ^: c  L6 W) [7 i0 g7 i4 z) F
SELECT city FROM tableB& \( A0 y# C& R+ U2 @( @* z
UNION+ |/ L3 g8 g4 g7 p! ^
SELECT city FROM tableC
9 ~4 @5 W5 V) n: Z( B2 q% |SQLFiddle演示
- V0 D6 @2 r1 @& u

0 @. G3 k3 t+ p( W% {结果4 t% F4 ?) O( L2 s
鈺斺晲鈺愨晲鈺愨晲鈺愨晲鈺愨晽+ q4 l0 c: F7 s" l% N5 ~
鈺?  CITY  鈺?3 ^: V5 e$ [$ L* M$ G4 m, `
鈺犫晲鈺愨晲鈺愨晲鈺愨晲鈺愨暎4 u% I! q- z5 U
鈺? Krakow 鈺?8 s, G! `" M- S( ?  Q- I
鈺? Paris  鈺?% U3 P9 f! W' X% q( V9 ]
鈺? Rome   鈺?& ~& g1 t9 Y9 f! _
鈺? London 鈺?
- L6 Y, h6 y1 X1 w鈺? Oslo   鈺?) S* Q8 C: _& Q( K. |6 p  Q7 B
鈺氣晲鈺愨晲鈺愨晲鈺愨晲鈺愨暆
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则