回答

收藏

比较两个SQL表并返回缺少的ID?

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

我有两个简单的表:(这里只有“ id”列)& r; k8 F! ^0 @- Y4 `" q
表格1:" a% N& \( v' E" B3 x; g
id% W, W7 x; u' o& q
1- e1 E, u" J% a$ {+ c: O
2/ v6 [1 L8 e0 x
3+ s7 o! _1 x) B  [( ~
40 w8 f6 v/ I9 A, r; t5 e
表2:
% _- l' R1 [3 j5 V" B1 nid
) c; j/ o. a! C: z1 X1 Z  Y- S27 _! F6 h9 H+ @# B* y6 O; ?6 A* C
4
1 C% Z. P3 d7 Q! y. Q" W2 Zsql查询应比较两个表中table2中缺少的“ id”并返回:1,2
0 K. R  {, E, s有任何想法吗? TY
5 w$ T$ Y2 V# v               
$ m' I8 M2 s" z* b( K解决方案:3 Z& T  v; C4 B) \
                : \6 `9 f4 q% {5 T+ [

! E/ F+ c8 ^4 [. A- x  X0 ?- w. @% ^  W1 V
                有几种方法可以给这只猫蒙皮:
! _1 I  c  ?( q) d) w; E4 Q6 sSELECT    table1.ID7 _2 {# B4 Z" |5 K$ k: w2 F
FROM      table1. j* J: q) z( @8 g" `) V
WHERE     table1.ID NOT IN(SELECT table2.ID FROM table2)3 f6 g+ m4 O( O3 J
或者,您可以使用左外部联接:
+ u4 |7 h/ ?" Z/ e& L: \# ]SELECT          table1.ID
5 P) C/ I, D$ j# r' s0 h! x5 [4 hFROM            table1
* ?. f+ f1 T% F# q$ CLEFT OUTER JOIN table2 ON table1.ID = table2.ID
7 O# `3 i$ k# {WHERE           table2.ID IS NULL
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则