📜  MySQL左联接(1)

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

MySQL左联接

在MySQL中,左联接(left join)是一种用于从两个或多个表中获取数据的技术。左联接从左侧的第一个表(称为左表)中返回所有行,并列出与右表中匹配的行,如果没有匹配,将返回NULL值。

语法
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
  • column_name(s):要提取的列的名称
  • table1:左联接的第一个表
  • table2:左联接的第二个表
  • column_name:用于连接两个表的列

在上面的语法中,我们使用LEFT JOIN关键字来指定左联接,然后使用ON关键字来指定两个表之间的列。

示例

我们来看一个简单的示例,假设我们有两个表:customersorders。如下所示:

customers表:

| CustomerID | CustomerName | ContactName | Country | | ---------- | ------------ | ----------- | ------- | | 1 | Alfreds | Maria | Germany | | 2 | Ana Trujillo | Ana | Mexico | | 3 | Antonio | Antonio | Mexico | | 4 | Around the | Thomas | UK | | 5 | Berglunds | Christina | Sweden |

orders表:

| OrderID | CustomerID | OrderDate | | ------- | ----------| ---------| | 1 | 2 | 2021-01-05| | 2 | 3 | 2021-01-02| | 3 | 3 | 2021-01-07|

可以使用以下命令进行左联接:

SELECT customers.CustomerName, orders.OrderDate
FROM customers
LEFT JOIN orders
ON customers.CustomerID=orders.CustomerID

执行结果如下:

| CustomerName | OrderDate | | ------------ | ----------| | Alfreds | null | | Ana Trujillo | 2021-01-05| | Antonio | 2021-01-02| | Antonio | 2021-01-07| | Around the | null | | Berglunds | null |

从上面的结果可以看到,所有客户的姓名都出现了,而只有与该客户相关的订单日期才被列出。客户“Alfreds”和“Around the”因为没有匹配的订单,所以订单日期列出了NULL。

总结

左联接是一种非常有用的技术,可以帮助我们在多个表中获取所需的数据。它可以通过使用LEFT JOINON关键字来实现。