首先,对于我的问题没有正确组织,我深表歉意。

我试图在Java中运行SQL查询,以便返回所有时差记录。所以要解释更多:
我有两张桌子。表A具有以下结构:

Table `A` (
  `interaction_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `job_id` int(11) NOT NULL,
  `task_id` varchar(250) NOT NULL,
  `task_time` datetime DEFAULT NULL,
  `task_assessment` float DEFAULT NULL,
  )

 Table `B` (
  `task_id` varchar(250) NOT NULL,
  `task_type` varchar(250) DEFAULT NULL,
  `task_weight` float DEFAULT NULL,
  `task_due` datetime DEFAULT NULL,
  `Job_id` int(11) NOT NULL
)


我需要从表A中获取count(distinct)-然后使用interaction_id

然后获取他们的时间-为每个用户使用task_time,我使用"WHERE user_id='" + userId(一个Java参数)。

之后,我想使用Job_id将表A与表B链接
  这样我就可以得到不同的日期(以小时为单位,所以我使用了SELECT TIMEDIFF(Hour,A(task_time),B(task_due)))。
  最后,我需要获取时差的平均值。

我认为描述时有点复杂。但是,感谢您的高级帮助!

非常感谢你

最佳答案

此查询应收集您期望的结果:

select count(*) as countLines,
       avg(time_to_sec(timediff(A.task_time, B.task_due)) / 3600)
  from A
       inner join B on A.job_id = B.job_id
 where A.user_id = @userId

10-07 19:11
查看更多