Mysql Sql查询在某些情况下返回两倍可疑值,在其他情况下返回正确值
我有一个将3个表连接在一起的查询。但有时我得到的结果是我预期的两倍 例如,如果我使用Mysql Sql查询在某些情况下返回两倍可疑值,在其他情况下返回正确值,mysql,sql,Mysql,Sql,我有一个将3个表连接在一起的查询。但有时我得到的结果是我预期的两倍 例如,如果我使用s.Driver\u Id=15000运行查询,则总计为阶段时间的两倍。 但是如果我用s.Driver\u Id=15001运行sane查询,我会得到预期的结果 这里有一个指向我的表和SQL查询的SQL FIDLE链接 任何帮助都会很好。感谢您在driverevent表中有两条记录,其driver\u id15000。这是因为您正在内部连接到driverevent,每个驱动程序有多行-每行用于不同的事件,但您只在
s.Driver\u Id=15000运行查询,则总计为阶段时间的两倍。
但是如果我用s.Driver\u Id=15001运行sane查询,我会得到预期的结果
这里有一个指向我的表和SQL查询的SQL FIDLE链接
任何帮助都会很好。感谢您在driverevent表中有两条记录,其driver\u id
15000。这是因为您正在内部连接到driverevent
,每个驱动程序有多行-每行用于不同的事件,但您只在driver\u id
上连接。因此,如果该driver\u id
出现在3个driverevent
记录上,则您最终将JOIN
ing所有3行,即使如此。您需要做的是加入驱动程序id和事件id
INNER JOIN driverevent de
on d.licence_no = de.driver_id and s.Event_Id = de.Event_Id
仔细观察,艾伦,我觉得你提出的问题背后的逻辑可能是错误的。据我所知,你根本不需要做任何分组
ing或SUM
ing
我可能是错误的,因为我不知道查询的真实世界逻辑,但是考虑这个代码,用< <代码> > < <代码> > <代码>和>代码>删除-< /p>