在我的数据库中,我有汽车和人。 在汽车和人之间是一个n到n'的'驱动' - '由'关系驱动。
我想查询数据库以获取由特定人员(例如“约翰”)驾驶并且也由其他人驾驶的所有汽车的列表。我想查询每辆车显示有多少(其他)人在驾驶它。
以上是我实际问题的简化。供额外参考; 汽车通常由1至4人驾驶,但1人驾驶多达5000辆汽车
是否可以在单个查询中执行此操作,如果是,如何执行此操作?
问候,
科恩
答案 0 :(得分:2)
这样的事情能做到吗?
SELECT p.PersonName, COUNT(d2.PersonId)
FROM Drives d
INNER JOIN
Person p
ON d.PersonId = p.PersonId
LEFT JOIN
Drives d2
ON d.CarId = d2.CarId
AND d.PersonId != d2.PersonId
GROUP BY p.PersonName
要仅限制由其他人驾驶的汽车,请将LEFT JOIN更改为INNER JOIN。