从玩家列表开始生成比赛列表



>我有以下情况:

Input data: 
Table t1:
+-------------+
| Teams       |
+-------------+
| India       |
| Australia   |
| England     |
| Italy       |
+-------------+
Required output:
+-------------+------------+
| Team1       |   Team2    |
+-------------+------------+
| India       | Australia  |
| India       | England    |
| India       | Italy      |
| Australia   | England    |
| Australia   | Italy      |
| England     | Italy      |
+-------------+------------+

即与哪个国家(第 2 列(比赛的国家(列 Team1(。

我尝试使用完全外部联接,但无法获得不同的值。我们可以通过单个 sql 查询来实现这一点吗?

对不相等的团队进行"半"联接:

select a.team, b.team
from teams a
join teams b on a.team < b.team

观看 SQLFiddle 上的现场演示。

使用a.team < b.team而不是a.team != b.team只返回组合而不是排列- 每个连接只得到一侧,只得到不同的组合。

最新更新