在一个查询中按特定字段选择所有可用组合

Posted

技术标签:

【中文标题】在一个查询中按特定字段选择所有可用组合【英文标题】:select all available combination by specific field in one query 【发布时间】:2017-12-07 20:55:27 【问题描述】:

我有表格“teams”,其中包含字段:id、team_name

  id, team_name
1、皇家马德里 2,巴塞罗那足球俱乐部 3、尤文图斯 4,米兰

我想在一个查询中选择所有可用的 VS 组合...

这样:

皇家马德里 - 巴塞罗那足球俱乐部

皇家马德里 - 尤文图斯

皇家马德里 - 米兰

巴塞罗那足球俱乐部 - 尤文图斯

巴塞罗那足球俱乐部 - 米兰

尤文图斯 - 米兰

目的是找到不同行数的动态解决方案,如果表格中有更多团队...

这可能吗?怎么……?

谢谢:)

【问题讨论】:

Is there a way to simulate GROUP BY WITH CUBE in mysql?的可能重复 【参考方案1】:

使用self join

select t1.team_name,t2.team_name
from tbl t1
join tbl t2 on t1.team_name>t2.team_name --or if the id's are unique use 
                                          /* on t1.id < t2.id */

【讨论】:

获取问题中指定的结果集...on t1.id &lt; t2.id(只是在第 1 列与第 2 列中列出的团队不同)...如果行的顺序很重要,请添加ORDER BY 子句,例如ORDER BY t1.id, t2.id +10 @spencer7593 ..你是对的..我编辑了我的答案以包含它。

以上是关于在一个查询中按特定字段选择所有可用组合的主要内容,如果未能解决你的问题,请参考以下文章

SQL VBA:选择具有特定表名和字段名的所有表

访问查询/组合框

在 Castle ActiveRecord 中按 ID 选择

如何从1个表中选择许多行并将其插入另一个表中特定行的特定JSONB字段中?但是在单个原始SQL查询中

获取音频设备列表并使用 c# 选择一个

如何对数据进行分组以从选择查询中按周显示平均价格