[英]Mysql comma separated value
我有兩個表,看起來類似於下表1和表2.我想要類似於表3
Table 1
ParticipantsId | Description | Duration
1,2 Demo 60 mins
1 Test 25 mins
1,2,3,4 Alpha 30 mins
4,5,6,2 MCQ 120 mins
表2
UserId | Name | Age
1 Aku 21
2 Greg 18
3 Denver 24
4 Mike 22
5 Sid 24
6 Sriten 19
我想要出局
表3
users | Description | Duration
Aku,Greg Demo 60
Aku Test 25
Aku,Greg,Denver,Mike Alpha 30
Mike,Sid,Sriten,Greg MCQ 120
我已經嘗試過find_by_set,group和其他各種可能性,但我無法獲得所需的結果,請幫忙
您可以一起使用GROUP_CONCAT()
和FIND_IN_SET()
:
SELECT
GROUP_CONCAT(t2.`name`) AS users,
t1.Description,
CAST(t1.Duration AS UNSIGNED) AS Duration
FROM
table1 t1,
table2 t2
WHERE
FIND_IN_SET(t2.userID, t1.ParticipantsId)
GROUP BY
t1.Description,
CAST(t1.Duration AS UNSIGNED)
結果是:
+----------------------+-------------+----------+
| users | Description | Duration |
+----------------------+-------------+----------+
| Greg,Denver,Aku,Mike | Alpha | 30 |
| Greg,Aku | Demo | 60 |
| Greg,Mike,Sid,Sriten | MCQ | 120 |
| Aku | Test | 25 |
+----------------------+-------------+----------+
4 rows in set
但是,您必須考慮數據結構的規范化,逗號分隔值是一種不好的做法,正如之前提到的那樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.