回答

收藏

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

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

我需要从3个表中获得不同的值。
( w2 `4 ^' E8 U4 d当我执行此代码时:
: W+ L2 G% U1 t9 o8 mselect DISTINCT(city) from a,b,c
" ?' Q, i2 |5 D) {: c我收到一条错误消息,提示我的“城市”一栏不明确。# u' u7 Z. V9 P" N3 g$ H) Z
我也尝试过这个:
2 b* z& U: J) v; k# v6 V/ {; Eselect DISTINCT(city) from a NATURAL JOIN b NATURAL JOIN c5 i* p! k! c" Z5 ]4 E
有了这段代码,我的表什么都收不到。* c1 q' t+ i  I  Q" B& j5 i$ q
让我向您展示我正在尝试做的事的示例:
+ N+ X! G/ K5 ~/ [2 jTABLE A               TABLE B                TABLE C5 \8 v, Q7 v! [2 J' S2 a' g/ f/ T
id  |  city           id  |  city            id  | city
5 }) z' b( m2 C% C- ?1 }$ w1   |  Krakow         1   |  Paris           1   | Paris
. g$ _1 z4 v6 i2   |  Paris          2   |  London          2   | Krakow$ w% R+ m# \0 ]: e  T
3   |  Paris          3   |  Oslo0 i/ R; [; H; ^" c
4   |  Rome
& |* C, g8 }$ @7 x) @, r我需要得到这样的结果$ A, i4 }1 |: |; O, G/ U
RESULTS% G: q: A4 V% z- q
city' W5 [1 M, n# |6 c$ I
----
+ I& I1 l$ b: m2 N* N Krakow
# w  Z' S4 y7 G9 X* b4 E Paris$ J0 I: {) ?- Q
Rome: r0 c+ \  z" h% \! C: [
London8 c, g, o6 K! h9 Y$ ?
Oslo
% C! B" D- _& T8 O3 {& }城市的顺序对我来说并不重要,我只需要拥有所有城市,每个城市应该只有一个代表。
! E5 ?, u) D' e% Y% }6 ]任何的想法?我当时想在中使用id's,JOIN但没有连接,所以我不能使用它。
. k% \7 h+ ?( d! {* Z+ p                ' x! z) y. f4 o8 [) H# S
解决方案:# V. _; l! Y- |! V: B6 Z: Z% I
               
3 @. z4 e9 Q7 V% l3 F- L( q  O" J- h, E+ E3 n3 R) C( o. w1 r: b
2 t/ `$ s0 ~/ k1 q
                该UNION关键字将返回unique结果列表上的记录。当指定ALL(
5 c  ^+ [" |+ B/ s7 j2 b6 H! KUNION ALL9 y1 d3 I; @6 c3 J
)时,将在结果集上保留重复项,OP不需要这些重复项。/ _0 ~1 A; i: g% @# Q* N, Q
SELECT city FROM tableA
( A. ]% s: Q3 K9 e* zUNION
. E' U- G2 X; `# RSELECT city FROM tableB
: K0 I. B- F- ]# vUNION
) q* v% V7 v) U3 o, ]$ E. CSELECT city FROM tableC
6 W1 L+ u* p8 j& K4 @SQLFiddle演示
1 }3 v; u' U) w# x

/ s8 [1 _, w% t4 H7 g5 b. O5 u8 a结果( i% X, c/ ?& t% s! }6 s
鈺斺晲鈺愨晲鈺愨晲鈺愨晲鈺愨晽2 _$ N0 p# R7 e$ Q
鈺?  CITY  鈺?6 Z! u1 i! g$ E" {1 G' H
鈺犫晲鈺愨晲鈺愨晲鈺愨晲鈺愨暎) t/ E5 x. J- @9 ]) X+ V! @7 ?
鈺? Krakow 鈺?
7 C7 T4 v: j# j, j鈺? Paris  鈺?6 [, K; n8 i* X& I
鈺? Rome   鈺?
% u8 P" ^3 n8 B7 J5 u8 m7 b鈺? London 鈺?0 S+ P- y( H9 F, U* j7 }4 R7 g; B
鈺? Oslo   鈺?
; Q. j- H8 j% `3 Q" |- a鈺氣晲鈺愨晲鈺愨晲鈺愨晲鈺愨暆
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则