>我有以下情况:
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
只返回组合而不是排列- 每个连接只得到一侧,只得到不同的组合。