SQL-如何连接两个表,但其中只有某些内容是完全匹配的?

SQL-如何连接两个表,但其中只有某些内容是完全匹配的?,sql,Sql,我不知道这是否可能,也不知道这是一个多对多连接的情况,这是一个复杂的情况,但以下是我正在寻求帮助的情况: Table1: Name Value1 Value2 Value3 John Demo DAT 12.5 Jane Dawn RAN 13.0 Table2: Name Value1 Value2 Value3 LOTS OF DATA 基本上,我希望创建一个join语句,其中表1中包含的value1、value2(确切地说)的任何内容,如果value3不包含

我不知道这是否可能,也不知道这是一个多对多连接的情况,这是一个复杂的情况,但以下是我正在寻求帮助的情况:

Table1:
Name  Value1 Value2 Value3
John  Demo   DAT    12.5
Jane  Dawn   RAN    13.0

Table2:
Name  Value1 Value2 Value3
LOTS OF DATA
基本上,我希望创建一个join语句,其中表1中包含的value1、value2(确切地说)的任何内容,如果value3不包含在表2中,则输出结果。请记住,这里没有唯一的键

我尝试过类似于下面的方法,但似乎不起作用:

Select * from Table2 as t2 inner join Table1 as t1 on t2.value1 = t1.value1
where t2.value1 = t1.value1
and t2.value2 = t1.value2
and t2.value3 <> t1.value3
从表2中选择*作为t2内部连接表1作为t2.value1=t1.value1上的t1
其中t2.value1=t1.value1
t2.value2=t1.value2
和t2.value3 t1.value3

我也看过工会,但不是100%确定。感谢您的帮助。我想这很简单,我只是缺少一个查找表(表1),表2应该包含正确的值,然后输出Value3列中未正确设置的任何内容作为输出,以便我们可以更正这些内容。

同时使用
不存在
存在

select t1.*
from table1 t1
where not exists (select 1
                  from table2 t2
                  where t2.value1 = t.value1 and
                        t2.value2 = t.value2 and
                        t2.value3 = t.value3
                 ) and
      exists (select 1
              from table2 t2
              where t2.value1 = t.value1 and
                    t2.value2 = t.value2
             ) ;