(3)Navicat

您所在的位置:网站首页 mysql多表联查语句 (3)Navicat

(3)Navicat

2023-09-15 04:01| 来源: 网络整理| 查看: 265

多表连查是什么:指的是一个实体的某个数据与另外一个实体的多个数据有关联关系, 一对多的关系在设计的时候,需要设计表的外键

(为什么使用多表连查 因为当我们有多张表 并且有的信息是相互联系的 这时候我们就需要用到多表连查。)

-----简单介绍一下里面的查询---- 交叉查询

交叉查询,又叫笛卡尔积查询,会将左表和右表的信息,做一个乘积将所有信息查询出来,会产生临时表,比较占用内存,生成的记录数=表1 X表2

select * from customer,orders;

select * from customer cross join orders;

内连接查询

内连接,inner join on 查询两张表,设定条件,将两张表中对应的数据查询出来

不会产生笛卡尔积,不会产生临时表,性能高

select * from customer c inner join orders o on c.id=o.customer_id;

select * from customer,orders where customer.id=orders.customer_id;

select * from customer c,orders o where c.id=o.customer_id;

左外连接

左外连接  left join   on 设定条件,将两张表对应的数据查询出来,同时将左表自己没有关联的数据也查询出来

注意:join前面是左,后面是右

select * from customer c left join orders o on c.id=o.customer_id;

右外连接

右外连接 right join  on 设定条件,将两张表对应的数据查询出来,同时将右表自己没有关联的所有数据查询出来

select * from customer c right join orders o on c.id=o.customer_id;

联合查询

select * from customer left join orders on customer.id=orders.customer_id

 having price>20;

(以上看起来会有点迷糊令人摸不到头脑 没关系w 我们接下来通过几个案例 来简单疏通一下)

1.案例一、

接下来我来给大家写几个案例(如下图):

1.查询名人表中性别是男的作者

2.查询静夜思的作者

 

3.查询李白和杜甫的年纪

 

4.查询白居易写的作品名称和对应代表句

 

5.名人表中男女的人数

 

6.查询年纪在25到30岁之间的 和人数

 

 

7.查询名人表年纪最小的两条

 

8.查询李白的作品名称 名句 和年纪

 

9.将作品为望岳的朝代修改为北宋

 

10.新增 名人表中的一个作者王维

 

2.案例二、

 

1.建库建表 填写数据

 

 1)查询sc表中对应何昊老师所搜课程的女生信息

 

2)找出没有选修过何老师的课程的所有同学的姓名

 

3) 列出有不及格课程(成绩小于60)的学生姓名(敲重点)

 

3案例三

 1.创建表 填入数据

 

1.查询孙姓用户的个数

 

2.查询年纪最大的两个用户名

 

3.查询李三购买的商品名

 

4.查询购买过电脑的用户

 

5.查询订单是909090对应的用户名和商品名

 

6.查询商品表中的最高价格的前两条数据

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3