gpt4 book ai didi

MySQL 左连接子选择

转载 作者:可可西里 更新时间:2023-11-01 07:04:44 25 4
gpt4 key购买 nike

我有一个简单的语言/模板 ID 表:

语言 |模板

en, t1
恩, t1
au, t2
ge, t3
恩, t1
ge, t2
ge, t3

模板始终是 t1、t2 或 t3。总共有 3 种语言:en、au、ge。

表格中有更多信息,我只是展示了与这个问题相关的内容,我将使用数据作图,因此需要以这种格式返回:

en, t1, 3
en, t2, 0
en, t3, 0
au, t1, 0
au, t2, 1
au, t3, 0
ge, t1, 0
ge, t2, 1
ge, t3, 2

这会计算每种语言中模板出现的次数。但是,如果表中没有该特定语言的模板 ID,我遇到的问题是返回零计数。

我在想它需要对模板 ID 进行某种左连接子选择,以确保为每种语言返回 3 个模板 ID?

最佳答案

可能有更好的方法,我还没有在 MySQL 中测试过,但在 SQL Server 2005 中可以使用以下方法:

Select a.language, b.template, count (c.template) as combo_count
from
(select distinct language from tablename) as a
inner join (select distinct template from tablename) as b on 1 < 2 /* this could be cross join, same thing. */
left outer join tablename c on c.language = a.language and c.template = b.template
group by a.language, b.template
order by 1, 2

以下是您的示例数据的结果:

au  t1  0
au t2 1
au t3 0
en t1 3
en t2 0
en t3 0
ge t1 0
ge t2 1
ge t3 2

关于MySQL 左连接子选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7520441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com