MySQL JOIN 多表连接
MySQL JOIN 多表连接
除了常用的两个表连接之外,SQL(MySQL) JOIN 语法还支持多表连接。多表连接基本语法如下:
1 |
... FROM table1 INNER | LEFT | RIGHT JOIN table2 ON condition INNER | LEFT | RIGHT JOIN table3 ON condition ...
|
JOIN 多表连接实现了从多个表中获取相关数据,下面是三个原始数据表:
article 文章表:
aid
title
content
uid
tid
1 |
文章1 |
文章1正文内容… |
1 |
1 |
2 |
文章2 |
文章2正文内容… |
1 |
2 |
3 |
文章3 |
文章3正文内容… |
2 |
1 |
5 |
文章5 |
文章5正文内容… |
4 |
1 |
user 用户表:
uid
username
email
1 |
admin |
admin@5idev.com |
2 |
小明 |
xiao@163.com |
3 |
Jack |
jack@gmail.com |
type 文章类型表:
tid
typename
1 |
普通文章 |
2 |
精华文章 |
3 |
草稿 |
MySQL INNER JOIN 多表
我们使用 INNER JOIN 列出三个表中都具有关联关系的数据:
1 |
SELECT article.aid,article.title, user .username,type.typename FROM article INNER JOIN user
|
2 |
ON article.uid= user .uid INNER JOIN type ON article.tid=type.tid
|
返回查询结果如下:
aid
title
username
typename
1 |
文章1 |
admin |
普通文章 |
2 |
文章2 |
admin |
精华文章 |
3 |
文章3 |
小明 |
普通文章 |
MySQL LEFT JOIN 多表
使用 LEFT JOIN 三个表查询:
1 |
SELECT article.aid,article.title, user .username,type.typename FROM article LEFT JOIN user
|
2 |
ON article.uid= user .uid LEFT JOIN type ON article.tid=type.tid
|
返回查询结果如下:
aid
title
username
typename
1 |
文章1 |
admin |
普通文章 |
2 |
文章2 |
admin |
精华文章 |
3 |
文章3 |
小明 |
普通文章 |
4 |
文章4 |
NULL |
普通文章 |
MySQL RIGHT JOIN 多表
使用 RIGHT JOIN 三个表查询:
1 |
SELECT article.aid,article.title, user .username,type.typename FROM article RIGHT JOIN user
|
2 |
ON article.uid= user .uid RIGHT JOIN type ON article.tid=type.tid
|
返回查询结果如下:
aid
title
username
typename
1 |
文章1 |
admin |
普通文章 |
2 |
文章2 |
admin |
精华文章 |
3 |
文章3 |
小明 |
普通文章 |
NULL |
NULL |
NULL |
草稿 |
可见,在 RIGHT JOIN 右连接中,只是列出最后一个右连接表的所有数据。
说明
对于 MySQL 多表 JOIN,还可以 INNER、LEFT 和 RIGHT 混用,其返回结果与各关键字顺序有关,感兴趣可自行测试。
原文网址:http://blog.zhigui.org/2011/11/mysql-join/
相关推荐
总之,合理使用和优化MySQL中的Join操作需要综合考虑表结构、索引设计、查询需求和硬件资源等多方面因素。通过实践和反复调优,DBA和开发人员能够显著提高数据库查询的性能,保证业务的高效稳定运行。
在多表环境中,如果两个或更多表之间存在关联,可以使用`JOIN`来执行连接删除。例如,删除`orders`和`items`表中满足特定条件的相关行: ```sql DELETE orders,items FROM orders,items WHERE orders.userid = ...
实验报告主要涵盖了数据库系统的基本操作,特别是MySQL中的分组查询、多表连接和子查询的运用。以下是对这些知识点的详细解释: 1. **GROUP BY 语句与聚合函数**: GROUP BY 语句用于将数据分组,通常与聚合函数如...
本文实例讲述了MySQL 多表关联一对多查询实现取最新一条数据的方法。分享给大家供大家参考,具体如下: MySQL 多表关联一对多查询取最新的一条数据 遇到的问题 多表关联一对多查询取最新的一条数据,数据出现重复 ...
MySQL JOIN 工作原理浅析是数据库管理系统中的一种关键技术,用于将多个表连接起来以获取所需数据。本文将对 MySQL 中的 JOIN 工作原理进行浅析,包括 Nested Loop Join 和 Hash Join 两种连接算法的工作原理、优...
MySQL 的 JOIN 语法提供了灵活的方式来连接多个表,并取得想要的数据结果。通过了解 JOIN 的用法,可以更好地解决实际问题,并提高数据处理效率。 知识点: 1. MySQL 的 JOIN 语法用于根据两个或多个表中的字段...
MySQL 高级表连接是指在 MySQL 中连接两个或多个表的数据,以便从多个表中检索数据。高级表连接包括内连接、外连接、带聚合函数连接和表连接+子查询等。 1. 内连接 内连接(Inner Join)是指从两个表中选择相互...
这里使用了3表关联,对于多表关联的 INNER JOIN 写法有一个技巧 1. 先写最简单的2表关联 INNER JOIN 2. 然后使用 () 从 FROM 之后到语句结尾全部扩起来 3. 在语句结尾开始连接与下一个表的 INNER JOIN 记住这个原则...
在MySQL数据库中,多表连接查询是数据操作的重要部分,特别是在处理复杂的数据关系时。本文将详细介绍MySQL中涉及的几种基本的多表连接查询方法,包括笛卡尔积、内连接和外连接,以及它们的使用场景和技巧。 1. ...
在数据库查询中,Join是非常重要的功能,它允许用户根据一定的条件将两个或多个表中的数据联合起来展示。在MySQL中,主要的Join方法包括INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN、SELF JOIN以及CROSS JOIN等。...
MySQL联合查询:使用JOIN连接多个表的指南
MySQL中的Nested-Loop Join(NLJ)是一种基本的JOIN操作实现方式,主要用于处理两个或多个表之间的连接。NLJ的基本思想是逐行遍历一张表(称为外部表),然后对每一行与另一张表(称为内部表)进行匹配。这个过程...
本篇文章将通过具体的练习案例来深入讲解MySQL中的多表联接查询技巧,特别是内联接(INNER JOIN)与外联接(OUTER JOIN)的应用。 #### 二、数据库表结构及数据 为了更好地理解和实践多表联接查询,这里构建了五个...
MySQL 多表联合查询教程 在本教程中,我们将学习 MySQL 中的多表联合查询,包括多表插入和多表更新的操作。多表联合查询是指从多个表中检索数据的操作,这种操作在实际应用中非常常见。 什么是多表联合查询 多表...
在MySQL中,当我们需要从多个表中获取相关数据时,就需要用到连接。这通常发生在不同表中存储的数据有相互关联的情况下。例如,一个员工表可能存储员工的基本信息,而另一个部门表则存储部门信息,两个表通过部门ID...
在本教程中,我们将深入探讨MySQL中的多种查询语句,包括多表查询、视图、数据库管理、SELECT语句以及创建表等核心概念。 首先,让我们从多表查询开始。在实际应用中,往往需要从多个相关表中获取信息,这就需要...
MySQL中的表连接是数据库操作中的核心概念,尤其在处理多表关联的数据时显得尤为重要。本文将深入探讨LEFT JOIN和RIGHT JOIN两种特殊的连接方式,帮助初学者理解这两种连接的语法、用法及其在实际操作中的应用。 ...
在MySQL中,多表查询通常涉及使用`JOIN`操作来连接不同的表。 ##### 1. 多表查询的操作与限制 多表查询的基本语法结构如下: ```sql SELECT [DISTINCT] * | 字段[别名], 字段[别名], ... FROM 表名称[别名], 表...