今天在做数据库练习题时,突然发现以前没有注意过的一个问题,多表连接时最后的查询结果中有重复的属性列怎么去重,大家都知道,多表连接时比较的分量必须是相同的属性组,两个表连接之后,select出所有的属性列,发现出现两列重复属性
比如有两个表,course表和score表,表结构如下:
course表 score表
然后查询score表中每个学生所选课的所有信息(学号,课程号,课程名,任课教师的编号,选修课的成绩)
SELECT *
FROM course as t1 INNER JOIN score as t2 ON t1.cno = t2.cno;
--或者可以写成 FROM course as t1 , score as t2 where t1.cno = t2.cno
结果:
而我们想要的结果是仅仅只有一列cno就可以了,这时就需要去重,可以使用下面语句指定从哪一个表中选取cno列:
SELECT t1.*,t2.sno,t2.Degree
FROM course as t1 INNER JOIN score as t2 ON t1.cno = t2.cno;
结果:
当然,这样的话就比较麻烦,需要我们自己手动指定从哪一个表中选取属性列,此时Using关键字就派上用场了:
SELECT *
FROM course INNER JOIN score using(cno);
结果和上面的方法一样,只会显示一个cno列: