【发布时间】:2017-03-14 06:01:14
【问题描述】:
(为了解释,我正在简化我的数据)
我有一个像这样的非规范化表(基本上是 3 个不同表之间连接的结果):
driver_uuid | vehicle_uuid | document_uuid
一个司机有很多辆车,
一个司机有很多文件,
一辆车有很多文件
我想运行一个查询,其中每个唯一的驱动程序/车辆对都有一行。
我试着做
SELECT * FROM driver_vehicle_documents
GROUP BY
driver_uuid,
vehicle_uuid
这几乎可行,但有一个问题:
拥有 1 辆或更多车辆的司机出现的次数将比他们拥有的车辆数量多一次。即拥有 1 辆车的驾驶员将出现两次:一次用于驾驶员/车辆对,一次用于驾驶员/空车对。
我们希望它让拥有 0 辆车辆的司机出现一次。有 1 辆车的司机会出现一次,有 2 辆车的司机会出现两次,以此类推。
我知道表格设计对于这个问题并不理想,但是表格用于许多不同的目的,并且在设计时考虑了这些因素。此时更改其设计是不可行的。
【问题讨论】: