gpt4 book ai didi

mysql - SQL 内部连接计算的 select 语句

转载 作者:行者123 更新时间:2023-11-29 11:30:02 25 4
gpt4 key购买 nike

我正在开展一个项目,我必须获取有关某人进行的体育锻炼的信息。我通过以下查询获取信息。

SELECT haas2.trainings.id,
haas2.trainings.timestamp,
haas2.training_types.NAME,
haas2.training_types.description,
haas2.training_types.intensity,
haas2.training_types.length
FROM haas2.trainings
INNER JOIN haas2.training_types
ON haas2.trainings.typeid = haas2.training_types.id
WHERE guid = (SELECT guid
FROM haas2.users
WHERE login = 'mphdijck')

它从保存所有培训的表中获取信息以及哪个用户参加了培训,然后从保存有关特定培训类型的信息的表中获取额外信息。

它返回如下:

Table return

现在问题来了,我想通过计算第一个传感器值和最后一个传感器值之间的时间差来得到训练的实际时间,这样我就知道训练花了多长时间。

对此我有以下声明:

SELECT 
Max(Unix_timestamp(timestamp)) - Min(Unix_timestamp(timestamp)) AS output,
haas2.trainingdata.training_id
FROM haas2.trainingdata
WHERE training_id = 1

返回结果如下:

Table return 2

如果第二个查询返回每次训练的时间,我的问题就会得到解决,因为这样我就可以在第一个查询上内部连接它。但目前它只能从 WHERE 子句中声明的training_id 返回训练。

我希望这是有道理的。我已尽力尽可能清楚地解释我的问题。如果需要任何说明,请询问。

更新:训练数据表示例

Trainingdata table

最佳答案

如果我理解你的意思,我认为你需要: SELECT MAX( UNIX_TIMESTAMP( timestamp ) ) - MIN( UNIX_TIMESTAMP( timestamp ) ) AS 输出,HAAS2.trainingdata.training_id FROM HAAS2.trainingdata GROUP BY Training_id。

关于mysql - SQL 内部连接计算的 select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37571103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com