[英]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.