MySQL中如何使用JOIN语句?

MySQL中的JOIN语句用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

JOIN类型:

  1. INNER JOIN(内连接): 获取两个表中字段匹配关系的记录。
sql
SELECT * FROM table1 INNER JOIN table2 
ON table1.col1 = table2.col1;
  1. LEFT JOIN(左连接):获取左表全部记录,右表符合ON条件的记录。右表没有匹配的记录则填NULL。
sql 
SELECT * FROM table1 LEFT JOIN table2 
ON table1.col1 = table2.col1;
  1. RIGHT JOIN(右连接): 与LEFT JOIN相反,获取右表全部记录,左表符合ON条件的记录。左表没有匹配的记录则填NULL。
sql
SELECT * FROM table1 RIGHT JOIN table2 
ON table1.col1 = table2.col1; 
  1. FULL OUTER JOIN(全外连接): 获取两个表的全部记录,不匹配的记录填NULL。
sql 
SELECT * FROM table1 FULL OUTER JOIN table2 
ON table1.col1 = table2.col1;

例1:内连接

sql
SELECT * FROM customers  
INNER JOIN orders 
ON customers.id = orders.customer_id;

例2:左连接

sql 
SELECT * FROM customers  
LEFT JOIN orders 
ON customers.id = orders.customer_id;

客户表中的所有客户记录将会显示,包括那些没有下订单的客户,对应orders表中的字段将显示NULL。
例3:右连接

sql
SELECT * FROM customers  
RIGHT JOIN orders
ON customers.id = orders.customer_id;  

orders表中的所有订单记录将会显示,包括那些不属于任何客户的订单,对应customers表中的字段将显示NULL。

总结:JOIN语句通过在两个或多个表的字段之间建立连接,可以查询这些表中相关的数据,实现表关系的映射。