sqlite3

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

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

我的工作如下:

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 返回的列命名为“摘要”,如下所示:
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 中的项目进行排序,但命名列是我的首要任务。

最佳答案

“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

关于database - 在选择中命名 group_concat 列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3710794/

10-15 04:07