`

MySQL LEFT JOIN 语法

阅读更多
SQL(MySQL) LEFT JOIN 会取得左表(table1)全部记录,即使右表(table2)并无对应匹配记录。LEFT JOIN 基本语法如下:
... FROM table1 LEFT JOIN table2 ON condition ...
MySQL LEFT JOIN 用法实例
下面是两个原始数据表:
article 文章表:
aid title content uid
1 文章1 文章1正文内容... 1
2 文章2 文章2正文内容... 1
3 文章3 文章3正文内容... 2
4 文章4 文章4正文内容... 4
user 用户表:
uid username email
1 admin admin@5idev.com
2 小明 xiao@163.com
3 Jack jack@gmail.com
我们列出所有的文章及对应的所属用户,即使没有用户的文章也列出。
SELECT ... LEFT JOIN ... ON 语句如下:
SELECT article.aid,article.title,user.username FROM article LEFT JOIN user ON article.uid = user.uid
返回查询结果如下:
aid title username
1 文章1 admin
2 文章2 admin
3 文章3 小明
4 文章4 NULL
可以看出来,与 INNER JOIN 明显的区别是,左表记录被全部取出,即使右表无对应匹配记录。
提示
这里所谓记录被“全部”取出,是相对于 INNER JOIN 的限制来说的。其实可以在上面的 SQL 语句后面加个 WHERE 条件或者 LIMIT 等关键字以同一般 SQL 语句一样对结果集做一个范围限制。
IS NULL
在上面的例子中,对于右表中没有对应匹配的数据记录,其所有的列都被置为 NULL,因此要查询这部分记录(如在上面例子中体现为查找 aid=4 这类无对应用户的文章记录),可以附加 IS NULL 条件:
SELECT article.aid,article.title,user.username FROM article LEFT JOIN user
ON article.uid = user.uid WHERE user.uid IS NULL
分享到:
评论

相关推荐

    MySQL JOIN 语法说明与 INNER JOIN 语法用法实例.docx

    本文档详细介绍了 MySQL 中的 JOIN 语法,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 等,并提供了实际的实例来说明 JOIN 的用法。 首先,MySQL 的 JOIN 语法用于根据两个或多个表中的字段之间的关系,从...

    MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程

    MySQL LEFT JOIN 语法 SQL(MySQL) LEFT JOIN 会取得左表(table1)全部记录,即使右表(table2)并无对应匹配记录。LEFT JOIN 基本语法如下: ... FROM table1 LEFT JOIN table2 ON condition ... MySQL LEFT ...

    Mysql之innerjoin,leftjoin,rightjoin详解.pdf

    Mysql 之 inner join, left join, right join 详解 Mysql 中的连接查询是指从两个或多个表中检索数据的操作。其中,inner join、left join 和 right join 是三种最常用的连接查询方式。本文将详细解释这三种连接...

    mysql语法手册-mysql语法手册-mysql语法手册-mysql语法手册

    手册还会涉及如何通过JOIN操作将多个表的数据组合在一起,如INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。 四、索引 索引能显著提高查询速度。手册会讲解如何创建(CREATE INDEX)、查看(SHOW INDEXES)和删除...

    关于sql的left join,right join,inner join,outerjoin

    其语法结构与LEFT JOIN类似,只是交换了表的位置: ```sql SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column = table2.column; ``` 3. INNER JOIN(内连接) INNER JOIN仅返回两个表中存在...

    浅析Mysql Join语法以及性能优化

    在本文中,我们将深入理解JOIN语法,并探讨如何进行性能优化。 首先,JOIN的基本语法涉及FROM子句后的两个或更多表名,以及ON子句中定义的连接条件。JOIN类型主要有INNER JOIN、LEFT JOIN和RIGHT JOIN。 INNER ...

    mysql操作和语法

    2. JOIN操作:用于合并两个或更多表的数据,包括INNER JOIN(交集)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)和FULL OUTER JOIN(全外连接)。 3. 分页查询:使用`LIMIT offset, limit`实现数据分页,offset指定...

    MySQL在右表数据不唯一的情况下使用left join的方法

    MySQL中的LEFT JOIN是一种关联查询操作,它用于合并两个或更多表的数据,主要关注左表(第一个表)的所有记录,即使在右表(第二个表)中没有匹配的记录。LEFT JOIN的关键在于左表的所有记录都将被返回,而右表只...

    mysql高级语法教学

    联接操作(如INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN)则用于合并来自多个表的数据,以满足复杂的查询需求。 2. **窗口函数** MySQL的窗口函数允许你在一组行(一个“窗口”)上执行计算,而不仅仅是...

    sql中的left join及on、where条件关键字的区别详解

    LEFT JOIN 关键字语法 SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。 创建两张...

    MYSQL语法参考手册参考大全

    JOIN操作允许合并多个表的数据,如INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN。 六、索引 索引是提高查询速度的关键。MySQL支持不同类型的索引,如B-Tree、Hash、R-Tree和Full-text。CREATE INDEX语句...

    mysql join所有方法总结

    实际上,MySQL是支持FULL JOIN的,只是在早期版本中可能不提供FULL OUTER JOIN的直接语法支持。在MySQL 8.0及以后的版本中,可以使用FULL JOIN。它联合了左连接和右连接的结果,即使其中一侧没有匹配的记录,也能...

    MySQL语法语句大全MySQL语法语句大全

    2. 左连接:`SELECT * FROM 表1 LEFT JOIN 表2 ON 连接条件;` 3. 右连接:`SELECT * FROM 表1 RIGHT JOIN 表2 ON 连接条件;` 4. 全连接:`SELECT * FROM 表1 FULL OUTER JOIN 表2 ON 连接条件;` 九、子查询 1. 单行...

    MySQL基础语法与练习

    - `JOIN`:合并多个表的数据,包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。 - `GROUP BY`:按指定列对结果集进行分组。 - `HAVING`:与`GROUP BY`配合,用于筛选分组后的数据。 - `ORDER BY`:对查询结果...

    mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录

    MySQL中的`NOT IN`, `LEFT JOIN`, `IS NULL`, 和 `NOT EXISTS` 是四种常见的用于在数据查询中排除特定记录的语法。它们在特定场景下可能会有不同的效率表现,尤其是在处理大量数据时。以下是对这些语句的详细分析: ...

    mysql基础语法练习示例

    此外,还可以进行更复杂的操作,如联接(JOIN)两个或更多表格,使用`INNER JOIN`, `LEFT JOIN`, `RIGHT JOIN`等: ```sql SELECT * FROM Users INNER JOIN Orders ON Users.ID = Orders.UserID; ``` 索引是提高...

    MySQL的SQL语法.pdf

    ### MySQL的SQL语法知识点概述 #### 一、SQL语言简介与规范 - **定义与历史**: SQL(Structured Query Language)是一种专门设计用于管理和查询关系型数据库的语言。它最初由IBM在20世纪70年代为DB2系统开发,并在...

    Mysql中的join操作

    SELECT * FROM java LEFT JOIN mysql ON java.name = mysql.name; ``` 这将返回: ``` +-------+------+ | name | name | +-------+------+ | java1 | NULL | | java2 | NULL | | blue | blue | +-------+------+ ``...

Global site tag (gtag.js) - Google Analytics