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/