📜  左连接 - SQL (1)

📅  最后修改于: 2023-12-03 15:25:24.784000             🧑  作者: Mango

左连接 - SQL

左连接是SQL语言中最常用的连接类型之一。它是指将两个表连接在一起,但是关联的表中,以左表为基础,会将左表中的所有数据列出,同时将右表中符合条件的数据合并在一起。如果右表中没有匹配的数据,则在结果中保留左表的数据,右表的结果为NULL值。

语法
SELECT column1, column2, ... FROM table1 LEFT [OUTER] JOIN table2 ON condition;

在上述语句中,table1和table2是要连接的表,condition是连接的条件。

示例

我们将通过以下示例来更好地理解左连接的概念。

创建表

CREATE TABLE employees (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  department VARCHAR(50)
);
INSERT INTO employees (id, name, department) VALUES 
  (1, 'John Smith', 'Sales'),
  (2, 'Jane Doe', 'Marketing'),
  (3, 'Jack Johnson', 'Sales'),
  (4, 'Bob Jones', 'Management'),
  (5, 'Samantha Lee', 'Marketing');
  
CREATE TABLE orders (
  id INT PRIMARY KEY,
  employee_id INT,
  product VARCHAR(50)
);
INSERT INTO orders (id, employee_id, product) VALUES 
  (1, 1, 'Product A'),
  (2, 3, 'Product B'),
  (3, 1, 'Product C'),
  (4, 2, 'Product A'),
  (5, 5, 'Product B');

示例查询

SELECT employees.name, orders.product 
FROM employees
LEFT JOIN orders
ON employees.id = orders.employee_id;

查询结果

|  name         |  product    |
|---------------|-------------|
|  John Smith   |  Product A  |
|  John Smith   |  Product C  |
|  Jane Doe     |  Product A  |
|  Jack Johnson |  Product B  |
|  Bob Jones    |  NULL       |
|  Samantha Lee |  Product B  |

在上述示例中,我们使用了左连接将employees表和orders表连接在一起。我们得到了每个员工的名字和他们的订单产品。我们可以看到,由于Bob Jones在orders表中没有订单,所以在结果中它的product一栏为NULL值。

总结

左连接是SQL语言中非常常用的连接类型之一,它可以将两个表连接在一起,并且可以将左表所有数据列出,既包含右表符合条件的数据,也包含右表中没有匹配的数据,结果为NULL值。它可以用于解决数据的多表查询问题。