左外连接和另外的where子句

ata*_*ata 27 sql join

我有一个连接两个表定义为左外连接,以便所有记录从左手表返回,即使它们在右手表中没有记录.但是我还需要在右侧表格的字段中包含一个where子句,但是......我仍然想要为左侧表格中的每个记录返回左侧表格中的一行,即使不满足where子句中的条件.有办法做到这一点吗?

Cha*_*ana 21

是的,将条件(称为谓词)置于连接条件中

   Select [stuff]
   From TableA a
       Left Join TableB b
           On b.Pk = a.Pk
               -- [Put your condition here, like this]
               And b.Column = somevalue
Run Code Online (Sandbox Code Playgroud)


Mar*_*ith 10

您只需将谓词置于JOIN条件中即可.将它放入WHERE子句将有效地将您的查询转换为内部联接.

例如:

...
From a
Left Join b on a.id = b.id and b.condition = 'x'
Run Code Online (Sandbox Code Playgroud)