MySQL 什么是MySQL的LEFT JOIN,我们如何编写MySQL查询?
在MySQL中,LEFT JOIN是一种连接表的方式,它可以将两个或多个表的数据进行关联,以便我们进行查询操作。LEFT JOIN是指从左表(第一个表)中返回所有的行,并且与右表(第二个表)中匹配的行,如果右表中没有匹配的数据,则为NULL。
下面我们通过一个例子,来演示如何编写MySQL查询的代码。
阅读更多:MySQL 教程
示例:
假设有两个表,一个是“Book”表,另一个是“Category”表,我们要查询图书表中所有的图书以及它们的分类信息,可以使用LEFT JOIN。
创建表
首先,我们需要创建这两个表,并插入一些数据,如下所示:
-- 创建Book表
CREATE TABLE Book (
BookId int PRIMARY KEY,
BookName varchar(255),
Price float,
CategoryId int
);
-- 插入数据
INSERT INTO Book (BookId, BookName, Price, CategoryId) VALUES (1, 'Java编程思想', 79.8, 1);
INSERT INTO Book (BookId, BookName, Price, CategoryId) VALUES (2, 'Effective Java', 59.9, 1);
INSERT INTO Book (BookId, BookName, Price, CategoryId) VALUES (3, 'MySQL必知必会', 49.8, 2);
INSERT INTO Book (BookId, BookName, Price, CategoryId) VALUES (4, 'Python入门', 29.9, 1);
-- 创建Category表
CREATE TABLE Category (
CategoryId int PRIMARY KEY,
CategoryName varchar(255)
);
-- 插入数据
INSERT INTO Category (CategoryId, CategoryName) VALUES (1, '编程');
INSERT INTO Category (CategoryId, CategoryName) VALUES (2, '数据库');
INSERT INTO Category (CategoryId, CategoryName) VALUES (3, '网络');
查询数据
接下来,我们来编写查询代码,查询所有的图书以及它们的分类信息。我们使用LEFT JOIN连接Book表和Category表,通过CategoryId关联两个表,查询结果包括图书信息和分类信息。
-- 查询所有图书及其分类信息
SELECT Book.BookName, Category.CategoryName
FROM Book
LEFT JOIN Category ON Book.CategoryId = Category.CategoryId;
执行上述代码,得到的查询结果如下:
| BookName | CategoryName |
|---|---|
| Java编程思想 | 编程 |
| Effective Java | 编程 |
| MySQL必知必会 | 数据库 |
| Python入门 | 编程 |
在上面的查询中,我们使用“SELECT”语句来查询数据,“FROM”指定了查询的表,而“LEFT JOIN”是指连接的类型。在LEFT JOIN中,我们要使用“ON”后面跟着连接的条件。
结论
在MySQL中,LEFT JOIN允许我们同时查询两个表的数据,并且可以在结果中返回所有的左表中的行,以及与右表中关联的行,如果右表中没有匹配的行,那么它的值将为NULL。如果我们想要查询多个表中的数据,我们可以使用多个LEFT JOIN来关联它们,根据需要编写查询条件即可。
极客笔记