2010-09-14 3 views
2

sqlite3Attribution d'un nom à une colonne group_concat dans une sélection

J'ai deux tables. L'un contient des listes et l'autre contient les éléments de chaque liste.

Je souhaite créer une instruction select qui saisit les lignes dans la table des listes, mais crée également une colonne qui est un résumé délimité par des virgules des éléments de chaque liste.

Je possède ce travail comme suit:

select 
    master._id as _id, 
    master.name as name, 
    master.created_on as created_on, 
    group_concat(items.name, ', ') 
from 
    tablea master 
join 
    tableb items 
on 
    master._id = items.master_id 
group by 
    master._id 

Cependant, je voudrais citer la colonne retournée par le group_concat comme « sommaire » comme ceci:

select 
    master._id as _id, 
    master.name as name, 
    master.created_on as created_on, 
    group_concat(items.name, ', ') as summary 
from 
    tablea master 
join 
    tableb items 
on 
    master._id = items.master_id 
group by 
    master._id 

Quand je fais cela, Je reçois une erreur SQL: « erreur SQL: près de « résumé »: erreur de syntaxe

Comment puis-je obtenir ce que je suis désireux de faire

?

Je voudrais également commander les articles dans le groupe_concat par ordre alphabétique descendant, mais nommer la colonne est ma première priorité.

Répondre

4

"AS" est facultatif. Cependant, à la fois avec et sans "AS" fonctionne très bien pour moi (en utilisant SQLite version 3.6.14.2):

drop table tablea; 
drop table tableb; 
create table tablea(_id int, name varchar, created_on varchar); 
create table tableb(master_id int, name varchar); 
insert into tablea values(0, 'Hello', '2010'); 
insert into tableb values(0, 'x'); 
select 
    master._id as _id, 
    master.name as name, 
    master.created_on as created_on, 
    group_concat(items.name, ', ') as summary 
from 
    tablea master 
join 
    tableb items 
on 
    master._id = items.master_id 
group by 
    master._id 
+1

Enlever le "AS" fait exécuter la requête. Je vous remercie. Je ne sais pas pourquoi, mais en utilisant comme me donne l'erreur que j'ai décrite dans l'OP – Andrew

Questions connexes