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我添加了一个额外的连接条件,它应该符合您的要求