SQL sever中有关链接查询问题的简单回答

不少人再刚接触到SQL sever的时候遇到了不少困难,小编也和你们一样,所以今天写下来我的学习后的总结同时里面也有些与老师讲的做对比的内容,希望对您有所帮助。

多表查询—链接查询
   概念:根据两个表或多个表的列之间的关系,从这些表中查询数据。
   目的:实现多个表查询操作。

内链接:
简单方法:
select * from t1 –表 a –表的代称 ,t2 b where a.studentid = b.studentid –链接列
select * from  t1 a inner join t2 b on a.studentid = b.studentid


select * from  t1 a inner join t2 b on a.studentid > b.studentid

select * from  t1 a inner join t2 b on a.studentid < b.studentid

扫描二维码关注公众号,回复: 4128141 查看本文章

select * from  t1 a inner join t2 b on a.studentid >= b.studentid


老师讲授的方法:

1Select t10.产品编号, t10.产品名称,t10.现库存,t10.进货量,t11.进货量,t11.售出量 fromt10 inner join t11 on t10.产品编号= t11.产品编号)

 

2Select a.产品编号,a.产品名称,a.现库存,a.进货量,b.进货量,b.售出量 from t10a inner join t11 b ona.产品编号 =b.产品编号)

 

3Select t10.产品编号, t10.产品名称,t10.现库存,t10.进货量,t11.进货量,t11.售出量,

T10.进货量-t10现库存as ‘售出货物量’—varchar类型不能进行运算

t10.进货量-t10.现库存)* t11.售出价-t11.进货价)as ‘利润’

 fromt10 inner join t11 on t10.产品编号= t11.产品编号)


外连接:
左链接:
select * from t1 a left join t2 b on a.studentid = b.studentid
返回左表中的所有行,如果左表中行在右表中没有匹配行,则结果中右表中的列返回空值。

右链接:
select * from t1 a right join t2 b on a.studentid = b.studentid
以右链接为基准,t1表格与t2表格按照studentid对应匹配若t1没有与之对应的值则系统默认为null值


全链接:
select * from t1 a full join t2 b on a.studentid = b.studentid
将两表格按照studentid进行匹配,当某一行没有匹配的行,则另一表中所有列反回空值



交叉链接:(也称为笛卡儿积)
select * from t1,t2 or select * from t1 cross join t2
左表和右表组合,t2表的每个行数分别与t1表的所有行数组合,返回结果的行数等于两个表行数的乘积。



如果带where,返回或显示的是匹配的行数:
select * from t1 cross join t2 where t1.studentid = t2.studentid



读者朋友们看完该博客后如果有什么好的意见或者发现什么不足,请一定要告诉小编,同时感谢您为小编带来成长的可能,希望您学业有成!!!

多谢!!!吐舌头

同时也欢迎对我的另一篇文章提出指正https://blog.csdn.net/vlllllv/article/details/80150942

猜你喜欢

转载自blog.csdn.net/vlllllv/article/details/80151219
今日推荐