我在MySQL数据库中有两个表,事件和约会。每个约会都有一个字段event_id,一个start_time和一个end_time列。
我正在尝试设置一个查询,该查询会以分钟为单位向我提供事件ID及其总预约时间。例如,如果某个事件有两个约会,并且具有以下详细信息:
然后该事件的约会列将显示为135。
我知道如何对约会进行简单计算,但在解决时间方面我有点困惑。这是我到目前为止所做的:
SELECT
events.id AS event_id,
(SELECT COUNT(id) FROM appointments WHERE event_id = events.id) AS appointment_count
FROM events
任何建议表示赞赏。
感谢。
答案 0 :(得分:0)
试试这个
SELECT A.*,count(B.*) as count
FROM table_event A
JOIN table_appointment B ON A.event_id = B.event_id
GROUP BY B.event_id
答案 1 :(得分:0)
尝试这样的事情:
SELECT e.name, ap.event_id,
sum((TIME_TO_SEC(end_time) - TIME_TO_SEC(start_time))/60) AS dif
FROM events e LEFT JOIN appointment ap ON e.id = ap.event_id
GROUP BY e.name, ap.event_id
ORDER BY 2;
<强> Example.. 强>