注册 登录
编程论坛 SQL Server论坛

哪位高手帮我解释一下下边这道题?

lygg09 发布于 2010-11-11 17:40, 616 次点击
一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.
下边的是答案,但是我一句都看不懂。帮我解释一下
答:select a.name, b.name
from team a, team b
where a.name < b.name


5 回复
#2
aei1352010-11-12 09:10
表的自连接,如果表a的值为a时,要满足a.name<b.name,表b的值就为b,c,d中的一个,如果表a的值为b时,表b的值就为c,d中的一个,表a的值为c时,表b的值就为d,也就显示出了所有可能的比赛组合.
#3
juejitianya2010-11-12 13:24
解释:
  1.select a.name, b.name from team a, team b 是对表Team进行自连接,即(a,a),(a,b),(a,c)......(d,d),就相当于数学中的排列;
  2.条件where a.name < b.name,是将上面的上述操作得到的排列中的重复元素(比如(a,b)和(b,a))删除掉;
不知道你这样明白吗?
#4
lygg092010-11-12 21:25
回复 2楼 aei135
a.name这个代表什么?
#5
lygg092010-11-12 21:26
回复 3楼 juejitianya
a.name代表什么?
#6
juejitianya2010-11-13 11:12
a.name 代表的就是第一个 team 表中的name字段,是对第一个表team预先定义的一个别名。
1