求大佬解释一下
题目:
查出 2006-6-1 到2006-7-1之间举行的所有比赛,并且用以下形式列出:拜仁 2:0 不来梅 2006-6-21
select m.*,t1.tname as htname,t2.tname as gtname from m inner join t as t1 on t1.tid=m.hid inner join t as t2 on t2.tid=m.gid
我知道如果这样写:
select m.*,t1.tname as htname,t2.tname as gtname from m
肯定错的,因为没这些字段!那为什么加了个连接别名就可以运行了呢
它运行顺序是什么样的
回答:
inner join 引入了另一张表并进行了联结(join),第一个SQL等价于:
select m.*,t1.tname as htname,t2.tname as gtname
from m,t as t1, t as t2
where t1.tid=m.hid and t2.tid=m.gid
看到3张表联结,并且进行了联结条件选择了吗?
别名是必须的,因为t被打开了两次,分别作为独立的数据表被联结。
以上是 求大佬解释一下 的全部内容, 来源链接: utcz.com/p/176921.html