用于使用条件联接三个表的 SQL 查询



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

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

  2. 根据上述结果,我必须从地址角色表中找到地址表中不可用的记录。这是我正在使用的查询:

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'

上面的查询根据车辆和地址角色表的内部连接,从地址和地址角色表生成地址和地址角色表中的所有记录。

有没有办法根据以下内部连接仅从地址角色表中获取不匹配的记录?

这是你想要的吗?

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;

最新更新