我有以下情况:
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 |
+-------------+------------+
即与哪个国家(第Team2列)比赛的国家(第Team1列)。
我尝试使用完全外部联接,但无法获得不同的值。我们可以通过一个SQL查询来实现吗?
答案 0 :(得分:4)
对不相等的团队进行“半”加入:
select a.team, b.team
from teams a
join teams b on a.team < b.team
使用a.team < b.team
而不是a.team != b.team
只会返回组合而不是排列-您每次连接只得到一侧,给您唯一不同的组合。