MySQL中的join、left join和right join的区别主要在于:
- join是内连接,返回两表中字段匹配的数据。
语法:
SELECT column1, column2, ..
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;
- left join是左外连接,返回左表所有与右表匹配的数据。
语法:
SELECT column1, column2,...
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
- right join是右外连接,返回右表所有与左表匹配的数据。
语法:
SELECT column1, column2,...
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
主要区别在于:
- join只返回两表匹配的数据
- left join 会返回左表的所有数据,即使右表没有匹配数据
- right join会返回右表的所有数据,即使左表没有匹配数据
示例:
- JOIN 只返回用户ID为 1和2的记录
- LEFT JOIN 会返回所有用户记录,即使没订单记录
- RIGHT JOIN 会返回所有订单记录,即使用户不存在