SQL-需要基于TableB列中的值有条件地联接

SQL-需要基于TableB列中的值有条件地联接,sql,Sql,我需要知道表A中哪些行在表B中有基于表B中的列值的联接记录,但我还需要返回表A中的行在表B中不匹配的行 看起来我需要一个左连接和一个左外连接,所以我不知道该怎么做。我知道如何做每一件事,但不知道如何一起做 模式如下所示: TABLE_A pk TABLE_B pk a_fk some_value 我需要连接行,其中表_A在表_B中没有连接记录,或者表_A在表_B中有一个连接记录行(可以有多个),其中一些_值不等于“thisValue” 谢谢。左连接是左外部连接。外部联接保留了一个表,这就是您

我需要知道
表A
中哪些行在
表B
中有基于
表B
中的列值的联接记录,但我还需要返回
表A
中的行在
表B
中不匹配的行

看起来我需要一个左连接和一个左外连接,所以我不知道该怎么做。我知道如何做每一件事,但不知道如何一起做

模式如下所示:

TABLE_A
pk

TABLE_B
pk
a_fk
some_value
我需要连接行,其中表_A在表_B中没有连接记录,或者表_A在表_B中有一个连接记录行(可以有多个),其中一些_值不等于“thisValue”


谢谢。

左连接是左外部连接。外部联接保留了一个表,这就是您所追求的好猜测

SELECT *
FROM Table A
LEFT JOIN Table B
ON TableA.Column = TableB.Column
AND B.SomeValue <> 'ThisValue'
选择*
从表A
左联接表B
表A.Column=表B.Column
B.SomeValue“ThisValue”

所有匹配的行都将填充B信息。所有不匹配的行的B数据都将为空。

检查此项:如果添加样本数据和所需结果,将很容易理解您的要求。我添加了详细信息。谢谢。@mstrom我添加了一个额外的连接条件,它应该符合您的要求