📜  MySQL内部连接(1)

📅  最后修改于: 2023-12-03 15:03:08.064000             🧑  作者: Mango

MySQL内部连接

在 MySQL 中,内部连接是一种用于将两个或多个表连接在一起的方法。它只返回满足连接条件的行,而不返回没有匹配行的行。内部连接分为三种类型:等值连接、非等值连接和自连接。

等值连接

等值连接是指基于两个或多个表之间的相等关系连接它们。可以用 JOIN 关键字和 ON 子句执行等值连接。例如,以下查询执行基于 customersorders 表之间的 cust_id 列相等的等值连接:

SELECT *
FROM customers
JOIN orders ON customers.cust_id = orders.cust_id;

上述查询将返回 customersorders 表中 cust_id 列相等的所有行。

非等值连接

非等值连接是指基于两个或多个表之间的非等关系(如大于、小于、不等于等)连接它们。可以使用 JOIN 关键字和 ON 子句执行非等值连接。例如,以下查询执行基于 customersorders 表之间的 order_total 大于 500 的非等值连接:

SELECT *
FROM customers
JOIN orders ON customers.cust_id = orders.cust_id
WHERE orders.order_total > 500;

上述查询将返回 customersorders 表中 cust_id 列相等且 order_total 大于 500 的所有行。

自连接

自连接是指将一个表连接到自身以创建一个结果集。可以使用 JOIN 关键字和 ON 子句执行自连接。例如,以下查询显示了 employees 表中每个员工的经理的名字:

SELECT e.emp_id, e.emp_name, m.emp_name AS manager
FROM employees e
JOIN employees m ON e.manager_id = m.emp_id;

上述查询将返回 employees 表中每个员工的 emp_idemp_name 和经理的 emp_name

总结

内部连接是一种用于将两个或多个表连接在一起的方法。它只返回满足连接条件的行,而不返回没有匹配行的行。内部连接分为等值连接、非等值连接和自连接。可以使用 JOIN 关键字和 ON 子句执行内部连接。在编写内部连接时,需要考虑连接条件和结果集中的列。