为 sql 查询中的列设置默认值
Set a default value for a column in sql query
我有一个数据库,其中第一个 table 是一篇“文章” table(id, body...),第二个包含单词 (word_id, word) .这些词像文章labels/topics
另一个table连接前面的:article_labels(article_id, word_id).
有些文章没有标签(不包括在 article_labels table 中),大多数文章有多个标签。
我有一个查询,只获取带标签的文章 ( id | body | label1/label2/...)
select article_id, body
group_concat(word SEPARATOR '/') AS labels
from article_labels l,
portfolio_2022.words w,
articles a
where a.language='en'
and l.word_id = w.id
and a.id = l.article_id
group by article_id;
我想做的是获取所有带有标签的文章,如果一篇文章没有标签,则插入默认值(例如“未标记”)。
提前致谢!
您可以为此使用子查询:
select id, body, coalesce((
select group_concat(words.word separator '/')
from article_labels
join words on article_labels.word_id = words.id
where article_labels.article_id = articles.id
), 'unlabeled') as labels
from articles
where language = 'en'
我有一个数据库,其中第一个 table 是一篇“文章” table(id, body...),第二个包含单词 (word_id, word) .这些词像文章labels/topics
另一个table连接前面的:article_labels(article_id, word_id).
有些文章没有标签(不包括在 article_labels table 中),大多数文章有多个标签。
我有一个查询,只获取带标签的文章 ( id | body | label1/label2/...)
select article_id, body
group_concat(word SEPARATOR '/') AS labels
from article_labels l,
portfolio_2022.words w,
articles a
where a.language='en'
and l.word_id = w.id
and a.id = l.article_id
group by article_id;
我想做的是获取所有带有标签的文章,如果一篇文章没有标签,则插入默认值(例如“未标记”)。
提前致谢!
您可以为此使用子查询:
select id, body, coalesce((
select group_concat(words.word separator '/')
from article_labels
join words on article_labels.word_id = words.id
where article_labels.article_id = articles.id
), 'unlabeled') as labels
from articles
where language = 'en'