簡體   English   中英

排除 SQL 連接中的某些匹配行

[英]Excluding Certain Matching Rows in an SQL Join

我的問題有點復雜,所以我將使用我的表格的簡化版本進行解釋。

這是表 1:

Value L  AID      OID
A        1         1
B        2         1
C        3         1
D        4         1
E        2         1
F        2         2
G        2         3
H        2         4

這是表 2:

Value R  AID    OID    VAR
Z        0      1      0
Y        1      1      1
X        2      1      1
W        4      1      1
V        0      2      0
U        1      2      1
T        3      2      1

我想加入這些表,以便表 1 中的任何行在表 2 中沒有相應行且同時具有匹配的 AID 和 OID 的行在與具有匹配 OID 且 AID 和 VAR 為 0 的行的連接中返回. 在這個例子中,它看起來像這樣:

Value L   Value R   AID   OID   VAR
C         Z         3     1     0
F         V         2     2     0
H         V         4     2     0

我不確定如何解決這個問題。 具體來說,不確定如何阻止具有匹配 AID 和 OID 的行出現在我的連接中,並且只包含不匹配的行。 任何意見,將不勝感激。

我認為你想要not exists

select t1.*
from table1 t1
where not exists (select 1
                  from table2 t2
                  where t2.aid = t1.aid and t2.oid = t1.oid and t2.var = 0
                 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM