MySQL中的JOIN语句用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
JOIN类型:
- INNER JOIN(内连接): 获取两个表中字段匹配关系的记录。
sql
SELECT * FROM table1 INNER JOIN table2
ON table1.col1 = table2.col1;
- LEFT JOIN(左连接):获取左表全部记录,右表符合ON条件的记录。右表没有匹配的记录则填NULL。
sql
SELECT * FROM table1 LEFT JOIN table2
ON table1.col1 = table2.col1;
- RIGHT JOIN(右连接): 与LEFT JOIN相反,获取右表全部记录,左表符合ON条件的记录。左表没有匹配的记录则填NULL。
sql
SELECT * FROM table1 RIGHT JOIN table2
ON table1.col1 = table2.col1;
- 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语句通过在两个或多个表的字段之间建立连接,可以查询这些表中相关的数据,实现表关系的映射。