sql >> Databáze >  >> RDS >> SQLite

GROUP_CONCAT v SQLite

Musíte přidat GROUP BY klauzule, když používáte agregační funkci. Použijte také JOIN připojit se ke stolům.

Tak zkuste toto:

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;

Viz tento ukázkový SQLFiddle

To, co ses snažil, bylo téměř správné. Stačilo přidat GROUP BY klauzule na konci. Ale ten první je lepší.

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. Přirozené připojení na SQL Server

  2. převod časového razítka Epoch na server SQL (formát čitelný člověkem)

  3. Používejte relační databáze MySQL na Fedoře 12

  4. Jak deklarovat proměnnou a používat ji ve stejném skriptu Oracle SQL?