SQLITE: fusionando filas en una sola fila si comparten una columna

De una publicación anterior, tengo la siguiente vista en sqlite3:

CREATE View AttendeeTableView AS SELECT (LastName || " " || FirstName) as AttendeeName, CompanyName, PhotoURI, CompanyAttendeeRelation.CompanyId, CompanyAttendeeRelation.AttendeeId FROM Attendee JOIN CompanyAttendeeRelation on CompanyAttendeeRelation.AttendeeId = Attendee.AttendeeId ORDER BY LastName; 

Ahora, dado que los datos se generan a partir de una relación de muchos a muchos entre el Attendee y la Company , puedo get resultados como:

 Doe John | company A | johnPic.png | 1 | 15 Doe John | company B | johnPic.png | 2 | 15 

Lo que me gustaría hacer es, en los casos en que hay más de una compañía (como la anterior), crear una consulta que produzca:

 Doe John | company A company B | johnPic.png | 1 2 | 15 

Y otro que produce:

 Doe John | company A | company B | johnPic.png | 1 | 2 | 15 

Entonces, necesito saber esencialmente cómo combinar una columna específica para las filas que tienen diferentes valores en esa tabla.

¿Algunas ideas?

Por si acaso, la company A company B en la primera consulta es obviamente la concatenación de text, es decir, algo (row1.CompanyName || " " || row2.CompanyName)

Ahora entiendo a qué te refieres. Use la function agregada group_concat(X) para eso.
Más en el manual .

 SELECT (a.LastName || " " || a.FirstName) AS AttendeeName , a.PhotoURI , group_concat(c.CompanyName) AS CompanyIds , group_concat(c.CompanyId) AS Companies FROM Attendee AS a JOIN CompanyAttendeeRelation AS ca ON ca.AttendeeId = a.AttendeeId JOIN Company AS c ON ca.CompanyId = c.CompanyId; GROUP BY a.LastName, a.Firstname, a.PhotoURI 

También usa alias de tabla para acortarla y facilitar su lectura.

La respuesta de esta publicación te ayudará a activar

 Name | company ---------+---------- Doe John | company A Doe John | company B 

dentro

 Name | company-1 | company-2 ---------+-----------+---------- Doe John | company A | company B 

Estoy pensando que una selección interna podría ayudar, como:

 CREATE View AttendeeTableView AS SELECT (LastName || " " || FirstName) as AttendeeName, ( select CompanyName FROM Attendee A_innner JOIN CompanyAttendeeRelation CAR /* is this where company name is? */ ON on CAR.AttendeeId = A.AttendeeId /* if not remove the joins and CAR */ WHERE A_inner.last_name = A_outer.last_name and A_inner.first_name = A_outer.first_name ), PhotoURI, CAR.CompanyId, CAR.AttendeeId FROM Attendee A_outer JOIN CompanyAttendeeRelation CAR_outer ON on CAR_outer.AttendeeId = A_outer.AttendeeId GROUP by LastName,FirstName ORDER BY LastName, FirstName;