MySQL中的join、left join和right join的区别是什么?

MySQL中的join、left join和right join的区别主要在于:

  1. join是内连接,返回两表中字段匹配的数据。
    语法:
SELECT column1, column2, ..
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;
  1. left join是左外连接,返回左表所有与右表匹配的数据。
    语法:
SELECT column1, column2,...
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
  1. 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 会返回所有订单记录,即使用户不存在