假设我的两个表键由A列和B列组成:
表1
Column A Column B
1 1
1 X
2 2
3 3
表2
Column A Column B
1 1
2 2
3 3
如何仅选择Table1中仅与部分匹配的行。我的预期结果将拉出行:
Column A Column B
1 X
基本上找到列A和B匹配的所有行,但表2中的后续记录是“剩余的”
答案 0 :(得分:1)
select *
from tabl1
join tabl2
on (tabl1.cola == tabl1.cola and tabl1.colb <> tabl1.colb)
or (tabl1.cola <> tabl1.cola and tabl1.colb == tabl1.colb)
答案 1 :(得分:0)
在“部分”匹配
上加入表格select t1.*
from table1 t1
join table2 t2 on ((t1.a = t2.a and t1.b <> t2.b) or (t1.a <> t2.a and t1.b = t2.b))
答案 2 :(得分:0)
您可以使用NOT-EXISTS子查询解决此问题:
SELECT
input1.ColumnA,input1.ColumnB
FROM
t1
WHERE
NOT EXIST (
SELECT *
FROM t2
WHERE t1.ColumnB = t2.ColumnB AND t1.ColumnA = t2.ColumnA)
说明:在table1中选择其值不包含在table2中的行。