回答

收藏

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

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

我需要从3个表中获得不同的值。
, N8 o' b4 N( b9 }当我执行此代码时:9 T& i  `( a& o0 n& N$ ^" g
select DISTINCT(city) from a,b,c- {) h9 `( e6 e6 l% e, m% Z0 R
我收到一条错误消息,提示我的“城市”一栏不明确。1 O- _2 R/ k. g( \+ j9 O
我也尝试过这个:8 q, E+ H  c* I& ?6 x
select DISTINCT(city) from a NATURAL JOIN b NATURAL JOIN c
5 i- y0 A$ O0 M- F有了这段代码,我的表什么都收不到。
8 R% `* A  M. g5 i6 v让我向您展示我正在尝试做的事的示例:
4 a' e+ }; l" o( TTABLE A               TABLE B                TABLE C$ d8 b# p  y' I. H# k
id  |  city           id  |  city            id  | city
, Z+ B) Q) P$ k. e4 v% H0 }1   |  Krakow         1   |  Paris           1   | Paris
; g7 b' a# m# C3 O2   |  Paris          2   |  London          2   | Krakow; I/ q' n  e$ R' f* `
3   |  Paris          3   |  Oslo$ Z: G$ e8 q6 q6 d; q9 E9 n
4   |  Rome* Z. ~- f( k4 p7 `/ Y
我需要得到这样的结果
; r/ k% N9 G8 v/ m& E9 b! `RESULTS3 r( _* e! q# O
city8 f/ `7 ?! I$ V3 z2 C" }
----
( u7 v/ o8 B0 Q Krakow/ m2 u3 X6 n/ q2 M/ Q
Paris5 f) w. k: L) x6 R! R9 H' E
Rome
2 K$ r* F/ l( O- n7 i! E% }- R London' f) u# O; o# w- O: R
Oslo
1 M2 f& N# W, _0 R0 k城市的顺序对我来说并不重要,我只需要拥有所有城市,每个城市应该只有一个代表。6 d9 l* j3 ^+ R( x
任何的想法?我当时想在中使用id's,JOIN但没有连接,所以我不能使用它。
2 j( J: V* V! C5 l! J; e                8 x5 C% z% B" {: p% R% A; L' I
解决方案:
' c$ h3 n1 j$ D+ Z% I                , ?5 v( [; v/ H: h9 u

* \0 N: f5 S( v& Y1 G5 F# Q: c
# m) e5 c! h9 q/ M; [" C/ U                该UNION关键字将返回unique结果列表上的记录。当指定ALL(& }6 k1 X) o$ V7 T  {
UNION ALL- `$ o# C% W0 C% v& n7 x% y$ ]# _" F
)时,将在结果集上保留重复项,OP不需要这些重复项。
" d! B6 F$ w2 E6 e: vSELECT city FROM tableA9 p* q9 C0 d1 p& I6 l$ f
UNION
& @# Q0 Q  k+ A( B: zSELECT city FROM tableB
. Y6 A0 w- r, E% PUNION* G' E3 p1 x8 M  h5 e( P! F
SELECT city FROM tableC
  N' E9 M; R! _: }8 n* [SQLFiddle演示  {% {- S" r6 M1 L; H

, U* [4 z% z' J+ D, T. P3 Z结果  D$ [& a7 i3 G' D. B5 e; L2 k
鈺斺晲鈺愨晲鈺愨晲鈺愨晲鈺愨晽$ u. r! Z7 g! K
鈺?  CITY  鈺?  {5 V# K, `4 [. F/ q
鈺犫晲鈺愨晲鈺愨晲鈺愨晲鈺愨暎
& B! T& p% X0 j) N鈺? Krakow 鈺?
- P* p$ K* |' k鈺? Paris  鈺?4 c8 \# Y9 Q; d, ^6 t
鈺? Rome   鈺?
+ v, P( }* g" G& q; a鈺? London 鈺?5 v& k1 }( J" u9 Q5 n7 d' t( O
鈺? Oslo   鈺?7 {4 R% g$ Q3 i  o
鈺氣晲鈺愨晲鈺愨晲鈺愨晲鈺愨暆
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则