1、MySQL中左连接函数用于通过指定的连接条件,将左侧表格的所有记录与右侧表格中符合条件的记录连接起来。如果右侧表格中没有符合条件的记录,则仍然保留左侧表格的记录,并在右侧表格的相应列上显示 NULL 值。
LEFT JOIN 是进行左连接的关键字,其基本语法如下:
SELECT *
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
其中,table1、table2 表示要连接的两个表格,column_name 表示连接条件,可以是任意一列或多列。
例如,如果有一个顾客表和订单表,要查询每个顾客的订单信息,包括没有下单的顾客,可以使用以下查询语句:
SELECT customers.customer_name, orders.order_date, orders.order_amount
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;
该查询会返回所有顾客的信息,包括那些没有下单的顾客。如果某个顾客没有下单,订单信息列(包括订单日期和订单金额)将显示 NULL 值。
2、MySQL中右连接函数用于通过指定的连接条件,将右侧表格的所有记录与左侧表格中符合条件的记录连接起来。如果左侧表格中没有符合条件的记录,则仍然保留右侧表格的记录,并在左侧表格的相应列上显示 NULL 值。
RIGHT JOIN 是进行右连接的关键字,其基本语法如下:
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
其中,table1、table2 表示要连接的两个表格,column_name 表示连接条件,可以是任意一列或多列。
例如,如果有一个顾客表和订单表,要查询每个下单的订单信息,包括没有顾客的订单,可以使用以下查询语句:
SELECT customers.customer_name, orders.order_date, orders.order_amount
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;
该查询会返回所有订单的信息,包括那些没有顾客信息的订单。如果某个订单没有对应的顾客信息,顾客信息列(包括顾客姓名)将显示 NULL 值。
3、两者的区别
LEFT JOIN 左连接,以左侧表为主,右侧表与其相匹配,匹配不上的记录 ,以null 做替补;RIGHT JOIN右连接,以右侧表为主,左侧表与其相匹配,匹配不上得记录,以null做替补。