MySQL SELECT,JOIN TABLES和GROUP / COUNT COMMA SEPARATED VALUES

问题描述 投票:0回答:1

我有以下两个表:

**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是用逗号分隔的值,我不知道如何分割它们并对它们进行分组/计数。

mysql join group-by count
1个回答
0
投票

规范化的环境可能如下所示:

**Table: appointments_services**

appointment_id | service_id
---------------+----------------
             1 |         23
             1 |         26
             2 |         12
             2 |         23
             3 |         23
             3 |         45
             3 |         12

从这里开始,问题是微不足道的。

© www.soinside.com 2019 - 2024. All rights reserved.