在实际的应用中经常需要从多个数据表中读取数据。此时就使用到了表连接。
JOIN 按照功能大致分为如下三类:
- INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
- LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
- RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。
场景如下:
用户表:user
城市表:city
1. INNER JOIN
-- INNER JOIN
SELECT * FROM
user
INNER JOIN
city
ON user.cid = city.id
结果如下:
2. LEFT JOIN
-- LEFT JOIN
SELECT * FROM
user
LEFT JOIN
city
ON user.cid = city.id
结果如下:
3. RIGHT JOIN
-- RIGHT JOIN
SELECT * FROM
user
RIGHT JOIN
city
ON user.cid = city.id
结果如下: