目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

Python全系列 教程

3567个小节阅读:5929.9k

收藏
全部开发者教程

鸿蒙应用开发

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(1.5k)
赞(0)

join的使用_高级查询之多表查询

image-20211129150411315

mysql中的外连接、内连接

表A数据

aIDaNum
1a20500111
2a20500112
3a20500113
4a20500114
5a20500115

表B数据

bIDbName
12060032401
22060032402
32060032403
42060032404
82060032408

left join(左链接)

结果

aIDbNameaNumbID
12060032401a205001111
22060032402a205001122
32060032403a205001133
42060032404a205001144
5Nulla20500115Null

结果说明

left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,leftjoin是以左表为准的.

换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).

B表记录不足的地方均为NULL

right join(右连接)

结果

aIDaNumbNamebID
12060032401a205001111
22060032402a205001122
32060032403a205001133
42060032404a205001144
NullNulla205001158

结果说明

仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

inner join(相等连接或内连接)

等同于以下SQL句

结果

aIDaNumbIDbName
12060032401a205001111
22060032402a205001122
32060032403a205001133
42060032404a205001144

结果说明

很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.

join的使用_高级查询

  1. join分为left join(左外连接)和right join(右外连接)以及内连接(等值连接)。
  2. 在sqlalchemy中,使用join来完成内连接。在写join的时候,如果不写join的条件,那么默认将使用外键来作为条件连接。
  3. 查询出来的字段,跟join后面的东西无关,而是取决于query方法中传了什么参数。(模型名=全表;模型名.属性=表名.字段)。
  4. 在sqlalchemy中,使用outerjoin来完成外连接(默认是左外连接)。

实时学习反馈

1. 在SQLAlchemy中,对数据表关联查询说法正确的是?

A 数据只能通过模型的外键关联数据查询

B 通过join链接模型数据时,默认使用外键

C 通过链接模型数据时,默认使用左链接

D 通过join链接模型数据时,需要使用表名.列名关联

答案

1=>B

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2