我有三张桌子:车辆,地址,地址。我有两个任务,
我必须根据车辆表中的一个日期列找到地址角色表中的记录数。我可以使用车辆和地址表之间的内部联接来获得预期的结果。
根据以上结果,我必须找到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表的内部联接,得到地址和地址表中的所有记录。
有没有办法只根据以下内连接从addressrole表中获取不匹配的记录?
答案 0 :(得分:1)
这是你想要的吗?
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;