外链论坛

 找回密码
 立即注册
搜索
查看: 41|回复: 1

mysql子查询和连表

[复制链接]

2921

主题

1万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99139491
发表于 2024-8-4 13:40:38 | 显示全部楼层 |阅读模式

Nodejs第三十七章(子查找和连表)。

观众伴侣,今天来学习Nodejs的第37章子查找和联表。先学子查找便是subquery。在之前是在一张表里边进行增删改差的,在真正的工作中是不会把所有的字段都定义在一张表里边,没见过一张表里面有什么成千上万个字段,这般查找的效率肯定是欠好的。

因此为了性能是会进行分表的,乃至还会进行分库、分表和读写分离。今天演示便是分成两个表里边,来看一下。user表里边一共有4个值,还有table表里边有3个值。

有一个需求,例如想要搜索名字,经过name去查到table表里边所定义的数据。table表里面好似小满数据,但能跟name对应吗?肯定是不可的,由于名字肯定是能够随便变化的,肯定是不可做为一个基准去参考的。

必须创立相关关系了,便是两个表必须相关起来才可查。相关关系在哪?便是userID,便是table表里边的userID去对应的user表里边的ID,便是经过小满去查到ID,ID为一。经过一再去table表里边查user_id,不就把这条数据就查出来吗?这便是实现思路。

便是碰见这种需求就必须用子查找重视用子查找。子查找语句应该怎么写?首要经过select*from肯定要查,查哪个表?查table表。要求是什么?要求便是userID,便是经过查找来的。重视查找的规则必要是一个小括号,便是查找必要要用小括号包起来,这是它的规则。必定要记得写小括号,否则会包语法错误。

·再经过查找去查,select ID,源自于哪?源自user表。要求是什么?要求就要经过name去查,查小满,便是这般子的。

·来看一下结果,执行,是不是经过名字把table标准数据去查出来?其实这条语句执行出来便是这般子的,不便是个一吗?执行一下,不便是这玩意吗?能够来单独执行下这个语句,便是ID,而后为一。能够来看一下,字形ID为一,把这个值再去交给他,不就查出来吗?

其实子查找想象的那样难,便是把两条语句组合到一块了,这个是能够灵活组合大锥,重视这个便是查找的用法。

然则在工作中可能还会有这种需求,便是查出来的值想把user表跟table表只融合到一块此刻只是查出table表的数据,然则想把table表跟user表的这几条相关数据融合到一块,这种需求是很平常的,子查找肯定是满足不了的。

此时必须什么?必须联表,联表查找分为内连接跟外连接,内连接还有外连接,外连接分为左连接跟右连接。

先演示一下什么叫内连接,目的是什么?目的便是把table表的数据和user表的数据合并到一块,这种数据是就这种需求是很平常的,先经过内连接把它们的数据合并到一块

这个语句该怎么写?便是经过select*from,便是一起查两个表,其实很简单,便是查哪个表,查user表,再查一个table表,就一起查两个表。相关关系是什么?必须一个相关关系,相关关系讲过了,便是经过user表的ID去相关table表的user ID,user ID,就这般的,它们的相关关系。

来查一下,发掘是不是查出来了,数据是不是放到一块的?重视看,数据是不是合并到一块的?Gole Codm,小满的数据,还有小满,它们把数据都合并到一块了,这个便是内连接。

然则发掘有个新的问题,点击user,明明是四条数据,查出来把第四条数据丢掉了,这是为何由于table表里面仅有三条数据,并那样一条,因此就不会去放到结果的集里边,这是内连接所会产生的一个问题,大众必定重视一下。

此时候应该怎么办?便是期盼把那条数据查出来,期盼有个四,倘若table表数据,补个null不就能够了吗?此时候就必须运用外连接了,内连接就满足不了了。

外连接这个语句该怎么写?外连接先演示左连接,左连接什么?便是left,跟表名表面后面跟什么?跟on,on后面跟的是什么?连接的要求因此这个语句很简单,来看一下,select,而后leftjoin,便是左边的表为驱动表,便是它们的数据都会以驱动表为主。

倘若是填充null,由于是左边,肯定便是左边的表,便是user表,它便是驱动表。table就说table就说被驱动表,它便是被驱动的,这个便是驱动表。重视结果,结果是以驱动表为主的,因此结果便是以四条数据为主,倘若就补个null。

当然这是左连接,能够进行右连接。右连接什么意思?右连接肯定便是以右面的为主,便是此时table表的它就做为驱动表了,user的便是做为被驱动表了。查出来结果是什么?肯定是三条,由于table表里边不就三条数据,它又做为驱动表。

来看一下是不是结果?就仅有三条,因此大众必定要看清楚详细的需求到底要不要哪条数据,抉择便是到底要哪个表做为驱动表,只必须变换一下这个就能够了,便是left跟right,只要灵活的变通。

以上便是查找跟连表的基本演示。

回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-9-5 07:03:30 | 显示全部楼层
你的话深深触动了我,仿佛说出了我心里的声音。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-10-19 07:27 , Processed in 0.073097 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.