我有以下两个表:
**Table: appointments**
--------------------------
id | user_id | date
--------------------------
1 | 18 | 23/02/2018
2 | 24 | 24/02/2018
3 | 18 | 24/02/2018
--------------------------
**Table: appointments_services**
--------------------------------
id | appointment_id | service_id
--------------------------------
1 | 1 | 23,26
2 | 2 | 12,23
3 | 3 | 23,45,12
--------------------------------
我想提供以下报告:
1)根据我将输入的日期,对服务进行分组并向我显示总数/计数
2)在同一日期,向我显示user_id
已提供的服务总数/计数
如果以上两个报告需要在不同的SQL中,我不介意。
这是我到目前为止所做的:
SELECT * FROM appointments_services s
JOIN appointments a ON s.appointment_id = a.id
WHERE STR_TO_DATE(a.date, '%d/%m/%Y') BETWEEN STR_TO_DATE('01/03/2018', '%d/%m/%Y') AND STR_TO_DATE('05/03/2018', '%d/%m/%Y')
我现在卡住了,因为service_id
是以逗号分隔的值,我不知道如何分割它们并对它们进行分组/计数。
答案 0 :(得分:0)
规范化环境可能如下所示:
**Table: appointments_services**
appointment_id | service_id
---------------+----------------
1 | 23
1 | 26
2 | 12
2 | 23
3 | 23
3 | 45
3 | 12
从这里开始,这个问题很简单。