【发布时间】:2021-12-14 07:30:04
【问题描述】:
我什至不知道如何问我需要什么,所以我将在数据上演示:
我在 tblA 中有以下数据:
该查询需要生成 BMW 1 系与其他汽车发生事故的所有行,其中其他汽车也可能是 BMW 1 系。最终结果应如下所示:
每次事故都有一个参考编号“AccRef”,但事故涉及多辆汽车
谢谢
【问题讨论】:
标签: sql ms-access inner-join
我什至不知道如何问我需要什么,所以我将在数据上演示:
我在 tblA 中有以下数据:
该查询需要生成 BMW 1 系与其他汽车发生事故的所有行,其中其他汽车也可能是 BMW 1 系。最终结果应如下所示:
每次事故都有一个参考编号“AccRef”,但事故涉及多辆汽车
谢谢
【问题讨论】:
标签: sql ms-access inner-join
这将查询BMW 1 SERIES 行的第一个需求:
select * from ACCIDENTS where CarMake like '%BMW 1 SERIES%'
然后您要选择具有相同AccRef 的相关行。
为获得最佳性能,请在上述内部查询中的同一 AccRef 上使用 inner join。
select ACC.* from ACCIDENTS ACC
inner join (
select * from ACCIDENTS where CarMake like '%BMW 1 SERIES%'
) ACC_BMW
on ACC.AccRef = ACC_BMW.AccRef
编辑:我使用名称表 ACCIDENTS 而不是您的 tblA
【讨论】:
也可以:
SELECT
*
FROM accidents
WHERE accref IN (
SELECT
accref
FROM accidents
WHERE carmaker ='BMW 1 SERIES'
);
【讨论】:
* , 以确保没有任何未使用的内容被读取/实现。