📅  最后修改于: 2023-12-03 15:17:49.297000             🧑  作者: Mango
在MySQL中,左联接(left join)是一种用于从两个或多个表中获取数据的技术。左联接从左侧的第一个表(称为左表)中返回所有行,并列出与右表中匹配的行,如果没有匹配,将返回NULL值。
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
在上面的语法中,我们使用LEFT JOIN
关键字来指定左联接,然后使用ON
关键字来指定两个表之间的列。
我们来看一个简单的示例,假设我们有两个表:customers
和orders
。如下所示:
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 JOIN
和ON
关键字来实现。