数据库——sql多表查询
当要在两个表(或多个表)中查找对应数据时,与普通的查询略有差异。本篇博文用于先容根本的多表查询的方法。为方便展示,本篇建了两个数据库表“门生表”和“班级表”作为例子
https://i-blog.csdnimg.cn/direct/eedee52a5b174c47ac7e6f7af508c7b0.pnghttps://i-blog.csdnimg.cn/direct/fb9d97cad91e4162a358f2c448428171.png
其中,在“门生表”中,cid标签体现的是门生所在班级的id
1.多表查询
通过以下语句查找两个表的全部内容(相当于将两个表拼合),我们会发现出现了随机匹配的情况
SELECT * FROM `学生表`,`班级表` https://i-blog.csdnimg.cn/direct/c79332f66f2e4baba78ee405d1ffc67d.png
为办理这种问题,让门生和对应班级的信息匹配,我们可以通过添加条件实现,即查找出在门生表中cid与班级表中id相称的项
SELECT * FROM `学生表`,`班级表` WHERE `门生表`.cid=`班级表`.id https://i-blog.csdnimg.cn/direct/35e3b489de7649868d0ef3e2a22bcee7.png
如许可以有用制止以上问题。
2.联表查询
方法:JOIN IN
2.1内联接
假设,有A,B两个表,join in 求的内联表即为下图示意中的黄色部分
https://i-blog.csdnimg.cn/direct/ff885c75162c4195bc1e0c3a408a6fa9.png
对于本篇文章中的例子,详细SQL语句为:
SELECT * FROM `学生表`join `班级表` on `学生表`.cid=`班级表`.id 所得结果为下图:
https://i-blog.csdnimg.cn/direct/b0f1eb05411a4bec8160673eefb62682.png
2.2外联接
外联接又分为:左外联接和右外联接
左外联接示意图如下图赤色所示:
https://i-blog.csdnimg.cn/direct/30d0c2cea77e462f900379b3d1f887b0.png
右外联接示意图如下图赤色所示:
https://i-blog.csdnimg.cn/direct/45c5c345464048358dce6a079c30f684.png
在本文中的例子里,为了方便展示外联接,更新门生表和班级表如下:
https://i-blog.csdnimg.cn/direct/55923473d8f440b6ba6efb7736715940.pnghttps://i-blog.csdnimg.cn/direct/4fd447aa86f14b0cb78cbf8902eec996.png
左外联接的SQL语句 为:
SELECT * FROM `学生表` left join `班级表` on `学生表`.cid=`班级表`.id 结果如下,可见丽丽并没有对应班级,但在左外联表中仍会体现:
https://i-blog.csdnimg.cn/direct/0eec17883cb64d8697d7057569517c11.png
右外联接的SQL语句 为:
SELECT * FROM `学生表` right join `班级表` on `学生表`.cid=`班级表`.id 结果如下:
https://i-blog.csdnimg.cn/direct/53ce8b35d71147d4916597e7353519fa.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]