我有三张桌子。
Table1(Table1Id, Field1, Field2)
Table2(Table2Id, Table1Id, AuditDate, Field1, Field2)
Table3(Table3Id, Table1Id, AuditDate, Field1, Field2)
我想做的是选择 Table1 中的所有记录和字段,查看 Table2 和 Table3 以查找匹配的 Table1Id,然后从 Table3 中选择具有最新 AuditDate 的记录。我觉得我需要进行这样的查询。
SELECT DISTINCT Table1.Table1Id, Table1.Field1, Table1.Field2,
Table2.Field1, Table2.Field2,
Table3.Field1, Table3.Field2
FROM (Table1
INNER JOIN Table2 ON Table1.Table1Id = Table2.Table2Id)
INNER JOIN Table3 ON Table1.Table1Id = Table3.Table3Id
WHERE Table3.AuditDate =
(SELECT MAX(AuditDate) FROM Table3
WHERE Table1.Table1Id = Table3.Table3Id)
这个半有效。例如,如果 Table3 中没有任何与 Table1 相关的记录,则不会返回任何内容。我需要确保为 Table1 中的每条记录创建一条记录。