繁体   English   中英

MySQL SELECT,联接表和组/计数逗号分隔的值

[英]MySQL SELECT, JOIN TABLES AND GROUP/COUNT COMMA SEPARATED VALUES

我有以下两个表:

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

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

**Table: appointments_services**

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

从这里开始,问题变得微不足道了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM