我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql多表联合的查询方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql多表联合的查询方法

本文主要给大家介绍mysql多表联合的查询方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下mysql多表联合的查询方法吧。                                                            

mysql多表联合的查询方法

多表连接类型

1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用','  如:

SELECT * FROM table1 CROSS JOIN table2 SELECT * FROM table1 JOIN table2 SELECT * FROM table1,table2

由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢。一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN

2.   内连接INNER JOIN 在MySQL中把INNER JOIN叫做等值连接,即需要指定等值连接条件在MySQL中CROSS和INNER JOIN被划分在一起。 join_table: table_reference [INNER | CROSS] JOIN table_factor [join_condition]

3. MySQL中的外连接,分为左外连接和右连接,即除了返回符合连接条件的结果之外,还要返回左表(左连接)或者右表(右连接)中不符合连接条件的结果,相对应的使用NULL对应。

例子:

user表:
id | name
———
1 | libk
2 | zyfon
3 | daodao
user_action表:
user_id | action
—————
1 | jump
1 | kick
1 | jump
2 | run
4 | swim

sql语句:

select id, name, action from user as uleft join user_action a on u.id = a.user_id

结果:

id | name   | action
——————————–
1  | libk  | jump     结果1      
1  | libk  | kick     结果2        
1  | libk  | jump     结果3       
2  | zyfon  | run      结果4          
3  | daodao | null     结果5         
---------------------

分析:

注意到user_action中还有一个user_id=4, action=swim的纪录,但是没有在结果中出现,

而user表中的id=3, name=daodao的用户在user_action中没有相应的纪录,但是却出现在了结果集中

因为现在是left join,所有的工作以left为准.

结果1,2,3,4都是既在左表又在右表的纪录,5是只在左表,不在右表的纪录

工作原理:

从左表读出一条,选出所有与on匹配的右表纪录(n条)进行连接,形成n条纪录(包括重复的行,如:结果1和结果3),如果右边没有与on条件匹配的表,那连接的字段都是null.然后继续读下一条。

引申:

我们可以用右表没有on匹配则显示null的规律, 来找出所有在左表,不在右表的纪录, 注意用来判断的那列必须声明为not null的。

如:

select id, name, action from user as uleft join user_action a on u.id = a.user_idwhere a.user_id is NULL

(注意:1.列值为null应该用is null 而不能用=NULL

2.这里a.user_id 列必须声明为 NOT NULL 的.)

上面sql的result:

id | name | action
————————–
3 | daodao | NULL

看完以上关于mysql多表联合的查询方法,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的数据库栏目的。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql多表联合的查询方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【MySQL】MySQL表之联合查询(多表查询)

📌前言:本篇博客介绍MySQL数据库的MySQL表之联合查询(多表查询),学习MySQL之前要先安装好MySQL,如果还没有安装的小伙伴可以看看博主前面的博客,里面有详细的安装教程。 那我们废话不多说,直接进入主体!
2023-08-16

MyBatis 多表联合查询及优化方法

大家都知道Hibernate是全自动的数据库持久层框架,它可以通过实体来映射数据库,通过设置一对多、多对一、一对一、多对多的关联来实现联合查询,接下来通过本文给大家介绍MyBatis 多表联合查询及优化,需要的朋友可以参考下
2022-11-13

MySQL三表联合查询的方法是什么

这篇文章主要介绍了MySQL三表联合查询的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL三表联合查询的方法是什么文章都会有所收获,下面我们一起来看看吧。一、题目概述给定三张表(学生表、科目表
2023-07-05

MySQL的多表关联查询

一、多表关联查询 多表关联查询是使用一条SQL语句,将关联的多张表的数据查询出来。 1.1 交叉查询 交叉查询就是将多张表的数据没有条件地连接在一起进行展示。 1.1.1 语法 使用交叉查询类别和商品 -- 目标:查询所有分类,以及每个分类
2023-08-22

MySQL两张表联合查询的方法是什么

MySQL可以通过使用JOIN语句将两张表联合查询,具体方法如下:SELECT * FROM table1 JOIN table2 ON table1.column_name = table2.column_name;其中,tabl
MySQL两张表联合查询的方法是什么
2024-04-09

Mysql 多表关联查询

文章目录 1. Mysql中表之间的关系1.1 多表关系1.2 外键约束 2. 多表联合查询2.1 交叉连接查询:笛卡尔积2.2 内连接查询:inner join2.3 外连接查询2.3.1 左连接:2.3.2 右连接:2.3.
2023-08-21

MySQL中的多表联合查询功能操作

目录一.介绍数据准备交叉连接查询 内连接查询外连接子查询特点子查询关键字all关键字any关键字和some关键字in关键字exists关键字 自关联查询总结一.介绍多表查询就是同时查询两个或两个以上的表,因为有的时候用户在查看数据的时候
2023-02-01

mysql多表关联查询优化的方法是什么

在优化MySQL多表关联查询时,可以采取以下方法:确保表中的相关字段有索引:在进行多表关联查询时,通常会使用到相关字段进行连接操作,因此需要确保这些字段在每个表中都有索引。通过为这些字段创建索引可以提高查询的性能。使用合适的连接方式:在多表
mysql多表关联查询优化的方法是什么
2024-04-09

SQL 多表联合查询的几种方式详解

目录前言正文内连接等值连php接/相等连接自然连接自连接外连接左外连接右外连接全外连接/完全外连接交叉连接/笛卡尔积总结前言连接查询是关系数据中最主要的查询,包括内连接、外连接等。通过连接运算符可以实现多个表查询。正文连接查询主要分为
2023-02-15

SQL 多表联合查询的几种方式详解

这篇文章主要介绍了SQL 多表联合查询的几种方式,连接查询是关系型数据库中的一个重要标志,这次和大家一起复习多表查询的几种操作,结合实例代码讲解的非常详细,需要的朋友可以参考下
2023-02-15

ThinkPHP多表联合查询怎么用

这篇文章主要介绍ThinkPHP多表联合查询怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!thinkphp是什么thinkphp属于一种免费的开发框架,能够用于开发前端网页,最早thinkphp是为了简化开发而
2023-06-14

MySQL中的多表联合查询功能怎么使用

本篇内容介绍了“MySQL中的多表联合查询功能怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一.介绍多表查询就是同时查询两个或两个以
2023-07-05

MySQL数据库多表联合查询代码示例

MySQL多表联合查询允许从多个表中提取数据。语法为SELECT...FROMtable1JOINtable2ON...。示例:获取每个客户的订单总金额:SELECTc.name,SUM(o.total_amount)FROMcustomerscJOINordersoONc.id=o.customer_idGROUPBYc.name;。其他联合类型包括INNERJOIN、LEFTJOIN、RIGHTJOIN和FULLOUTERJOIN。性能提示包括使用索引、优化连接条件、避免模糊查询和考虑使用子查询。
MySQL数据库多表联合查询代码示例
2024-04-02

编程热搜

目录