在select中命名group_concat列

时间:2010-09-14 16:18:20

标签: database sqlite

sqlite3的

我有两张桌子。一个包含一些列表,另一个包含每个列表的项目。

我想创建一个select语句来抓取lists表中的行,但是还要创建一个列,该列是每个列表中项目的逗号分隔的摘要。

我的工作原理如下:

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

但是,我想将group_concat返回的列命名为“summary”,如下所示:

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

当我这样做时,我收到一个sql错误: “SQL错误:接近”摘要“:语法错误

我如何实现我想要做的事情?

我还想按字母顺序降序group_concat中的项目,但命名列是我的第一要务。

1 个答案:

答案 0 :(得分:4)

“AS”是可选的。但是,有和没有“AS”的情况对我来说都很好(使用SQLite版本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