GROUP_CONCAT Function in SQLite
This article discusses the usage and implementation of the GROUP_CONCAT function in SQLite to achieve data grouping and concatenation.
Introduction
Suppose you have a table with columns _id and Name, and the data is stored as follows:
1 A 1 B 1 C 1 D 2 E 2 F 3 G 3 H 3 I 3 J 3 K
To obtain the desired result, where each unique _id has a concatenated list of associated Name values, as illustrated below:
1 A,B,C,D 2 EF
The GROUP_CONCAT function can be utilized to achieve this.
Implementation
There was a minor issue in the provided query. To correctly implement the GROUP_CONCAT function, you must:
Therefore, the revised query that will produce the desired output is:
SELECT AI._id, GROUP_CONCAT(Name) AS GroupedName FROM ABSTRACTS_ITEM AI JOIN AUTHORS_ABSTRACT AAB ON AI._id = AAB.ABSTRACTSITEM_ID JOIN ABSTRACT_AUTHOR AAU ON AAU._id = AAB.ABSTRACTAUTHOR_ID GROUP BY AI._id;
Alternative Syntax
Alternatively, you can also structure the query as follows:
SELECT ID, GROUP_CONCAT(NAME) FROM (select ABSTRACTS_ITEM._id AS ID, Name from ABSTRACTS_ITEM , ABSTRACT_AUTHOR , AUTHORS_ABSTRACT where ABSTRACTS_ITEM._id = AUTHORS_ABSTRACT.ABSTRACTSITEM_ID and ABSTRACT_AUTHOR._id = AUTHORS_ABSTRACT.ABSTRACTAUTHOR_ID) GROUP BY ID;
This alternative syntax first prepares a subquery to fetch the necessary data and then applies the GROUP_CONCAT function on the result.
Conclusion
By employing the GROUP_CONCAT function in SQLite in conjunction with the JOIN operation and GROUP BY clause, you can effectively group and concatenate values within a result set.
The above is the detailed content of How to Combine Multiple Values into a Single String in SQLite Using GROUP_CONCAT?. For more information, please follow other related articles on the PHP Chinese website!