当前位置: 首页 > news >正文

MySQL:连接查询

连接查询是将两个或两个以上的表按照某个条件连接起来,从中选取需要的数据;

查询t_book表数据

在这里插入图片描述

查询t_bookType表数据

在这里插入图片描述

1、内连接查询

內连接查询是一种最常用的连接查询。内连接查询可以查询两个或者两个以上的表;

SELECT * FROM t_book,t_booktype;

在这里插入图片描述

SELECT * FROM t_book,t_booktype WHERE t_book.bookTypeId = t_booktype.id;/*内连接*/

在这里插入图片描述

SELECT bookName,price,booktypeName FROM t_book,t_booktype WHERE t_book.bookTypeId = t_booktype.id;/*内连接  只显示一部分字段,这样查询不好,如果字段多的话,比较混乱,需要使用到别名,如下面: 使用别名查询*/

在这里插入图片描述

使用别名查询

SELECT tb.bookName,tb.price,tby.booktypeName FROM t_book tb,t_booktype tby WHERE tb.bookTypeId = tby.id;/*内连接  使用别名查询*/

在这里插入图片描述

2、外连接查询

外连接可以查出某一张表的所有信息;
SELECT 属性名列表 FROM 表名 1 LEFT或者 RIGHT JOIN 表名2 ON 表名1.属性名1-表名2.層性名2;
提醒:
外连接,有时候查询,需要把某张表的某个字段全部显示出来,哪怕另外一张表没有字段显示为null

2.1、左连接查询

SELECT * FROM 表名1 LEFT JOIN 表名2 ON 条件 可以查询出“表名1”的所有记录,而“表名2”中,只能查询出匹配的记录;

/*左连接 左边的表数据全部显示出来*/
SELECT * FROM t_book LEFT JOIN t_booktype ON t_book.bookTypeId = t_booktype.id;

在这里插入图片描述

SELECT tb.bookName,tb.price,tby.booktypeName FROM t_book tb LEFT JOIN t_booktype tby ON tb.bookTypeId = tby.id;

在这里插入图片描述

2.2、右连接查询

SELECT * FROM 表名1 RIGHT JOIN 表名2 ON 条件可以查询出“表名2”的所有记录,而“表名1”中,只能查询出匹配的记录;

SELECT * FROM t_book RIGHT JOIN t_booktype ON t_book.bookTypeId = t_booktype.id;

在这里插入图片描述

SELECT tb.bookName,tb.price,tby.booktypeName FROM t_book tb RIGHT JOIN t_booktype tby ON tb.bookTypeId = tby.id;

在这里插入图片描述

3、多条件连接查询

由多个条件组合进行查询的,使用多个条件连接查询可以实现复杂条件的组合
使用多个条件连接查询是一种常用的技术,它能够帮助开发人员实现更加灵活复杂的查询,提高查询的效率。
如下是使用多个条件连接查询的一个示例:

SELECT 字段1, 字段2…FROM 表1 LEFT JOIN 表2 ON 表1.字段1=表2.字段1 WHERE 条件1 and 条件2 and 条件3;

SELECT tb.bookName,tb.price,tby.booktypeName FROM t_book tb LEFT JOIN t_booktype tby ON tb.bookTypeId = tby.id WHERE tb.bookTypeId > 5 AND tb.price > 20;

在这里插入图片描述

SELECT tb.bookName,tb.price,tby.booktypeName FROM t_book tb,t_booktype tby WHERE tb.bookTypeId = tby.id AND tb.price > 20;

在这里插入图片描述

推荐

MySQL:常用的SQL语句

http://www.lryc.cn/news/307960.html

相关文章:

  • 歌尔气压计SPA06-003在无人机和手表上的创新应用
  • 从0到1实现五子棋游戏!!
  • 二叉树(C/C++)
  • Django学习笔记-ModelForm使用(完全依赖)
  • 动态规划之使用最小花费爬楼梯【LeetCode】
  • 双指针---解决实际问题
  • 每天一个数据分析题(一百七十八)
  • Ethernet/IP转Modbus TCP网关
  • const详解
  • 多方面浅谈互联网技术
  • Oracle EBS GL 外币折算逻辑
  • Java面试题之mysql
  • 抖音直播封禁申诉话术怎么讲?抖音直播封号怎么申请解封?
  • 使用Jenkins部署前端Vue项目和后端Java服务
  • 刷题——显示屏
  • WEB服务器-Tomcat(黑马学习笔记)
  • 第五节:Vben Admin权限-前端控制方式
  • 蓝桥杯备赛第二篇(背包问题)
  • 【postgresql 基础入门】带过滤条件的查询,where子句中的操作符介绍,案例展示,索引失效的大坑就在这里
  • vue项目打包获取git commit信息并输出到打包后的指定文件夹中
  • vue 移动端app预览和保存pdf踩坑
  • Vueuse:打造高效的 Vue.js 开发利器
  • mysql锁的创建方式
  • 5.WEB渗透测试-前置基础知识-常用的dos命令
  • 解决:code ERESOLVE:ERESOLVE could not resolve 的报错问题
  • Dockerfile(3) - WORKDIR 指令详解
  • 2024万元投影仪怎么选?极米RS10 Ultra和当贝X5 Ultra实测横评
  • java环境搭建
  • 【GB28181】wvp-GB28181-pro快速修改登录页面名称(前端)
  • 【lv15 day1 设备号申请和注销】