SQLite
 sql >> Baza danych >  >> RDS >> SQLite

GROUP_CONCAT w SQLite

Musisz dodać GROUP BY klauzula, gdy używasz funkcji agregującej. Użyj także JOIN dołączyć do stołów.

Więc spróbuj tego:

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 tbl._id;

Zobacz ten przykładowy SQLFiddle

To, co próbowałeś, było prawie poprawne. Wystarczyło dodać GROUP BY klauzula na końcu. Ale pierwszy jest lepszy.

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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gdzie Android przechowuje wersję bazy danych SQLite?

  2. Dlaczego otrzymuję wyjątek java.lang.IllegalArgumentException:wartość wiązania w indeksie 1 jest w tym przypadku null?

  3. Tworzenie wielotabelowych baz danych Android SQLite

  4. Maksymalny rozmiar bazy danych SQLite w aplikacji na Androida

  5. Jak działa last_insert_rowid() w SQLite