带条件联接三个表的SQL查询

苏巴什Suyambuthangam

我有三个表:车辆,地址角色,地址。我有两个任务

  1. 我必须根据车辆表中的日期列之一从地址角色表中找到记录数。我可以使用车辆和地址表之间的内部连接来获得预期的结果。

  2. 基于以上结果,我必须从addressrole表中找到地址表中不可用的记录。这是我正在使用的查询:

SELECT addressrole.*,
       address.*
FROM addressrole
  LEFT JOIN address ON addressrole.ID = address.FK_ADDRESSROLE_ID
  INNER JOIN vehicle
          ON vehicle.ID = addressrole.FK_EVN_ID
         AND creationdate > '2018-03-01'

上面的查询基于来自vehicle和addressrole表的内部联接,得出address和addressrole表中的所有记录。

有什么方法可以根据以下内部联接从addressrole表中仅获取不匹配的记录?

戈登·利诺夫

这是你想要的吗?

SELECT ar.*, a.*
FROM addressrole ar INNER JOIN
     vehicle v
     ON vehicle.ID = ar.FK_EVN_ID AND
        ?.creationdate > '2018-03-01' LEFT JOIN
     address a
     ON ar.ID = a.FK_ADDRESSROLE_ID 
WHERE a.FK_ADDRESSROLE_ID IS NULL;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章