sql >> Databasteknik >  >> RDS >> SQLite

GROUP_CONCAT i SQLite

Du måste lägga till GROUP BY klausul när du använder aggregatfunktion. Använd även JOIN för att gå med i tabeller.

Så prova detta:

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;

Se detta exempel på SQLFiddle

Det du försökte var nästan korrekt. Du behövde bara lägga till GROUP BY klausul i slutet. Men den första är bättre.

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. SQL Server 2016:Skapa en relation

  2. När ska jag stänga DatabaseHelper?

  3. Vad är bästa praxis för att infoga en post om den inte redan finns?

  4. SQL-referenstabell:Hur man skapar och skriver grundläggande frågor