Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Sql查询在某些情况下返回两倍可疑值,在其他情况下返回正确值_Mysql_Sql - Fatal编程技术网

Mysql Sql查询在某些情况下返回两倍可疑值,在其他情况下返回正确值

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,每个驱动程序有多行-每行用于不同的事件,但您只在

我有一个将3个表连接在一起的查询。但有时我得到的结果是我预期的两倍

例如,如果我使用
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>