MySQL - EquiJoin

MySQL - EquiJoin 首页 / MySQL入门教程 / MySQL - EquiJoin

当无涯教程根据一些公共列和连接条件合并两个或多个表时,该过程称为连接。 等值联接(EquiJoin)根据关联表中的相等性或匹配列值组合多个表的操作

可以使用等号(=)比较运算符来引用 WHERE 子句中的相等性。 在 ON 子句中使用 JOIN关键字,然后指定列名称及其相关联时,此连接操作将返回相同的结果。

以下是说明等值连接操作的基本语法:

SELECT column_name (s)
FROM table_name1, table_name2, ...., table_nameN
WHERE table_name1.column_name = table_name2.column_name;

要么

SELECT (column_list | *)
FROM table_name1 
JOIN table_name2 
ON table_name1.column_name = table_name2.column_name;

使用这种语法,无涯教程需要在 SELECT关键字之后指定列名。如果要从两个表中选择所有列,将使用*运算符。接下来,将在FROM关键字之后指定表名用于连接,最后,在 WHERE 中写入 join条件 ON 子句。

EquiJoin示例

让无涯教程通过示例了解Equijoin在 MySQL 中的工作方式。假设已经有两个名为 customer balance 的表,其中包含以下数据:

MySQL EquiJoin

对联接表执行下面的equijoin语句:

mysql> SELECT cust. customer_name, bal.balance 
FROM customer AS cust, balance AS bal
WHERE cust.account = bal.account_num;

无涯教程将得到以下结果:

MySQL EquiJoin

还可以使用以下语句获得相同的结果:

mysql> SELECT cust. customer_name, bal.balance 
FROM customer AS cust 
JOIN balance AS bal
WHERE cust.account = bal.account_num;

请参阅以下输出,该输出与上一个查询返回的结果相同:

MySQL EquiJoin

三个表进行Equijoin联接

无涯教程知道equijoin也可以对两个以上的表执行联接操作。为了理解这一点,使用以下语句创建另一个名为 cust_info 的表:

CREATE TABLE cust_info (
	account_no int,
	mobile VARCHAR(15),
	address VARCHAR(65)
);

然后,将记录填充到该表中:

INSERT INTO cust_info (account_no, mobile, address)
VALUES(1030, '598675498654', '777 Brockton Avenue, Abington MA 251'), 
	(2035, '698853747888', '337 Russell St, Hadley MA 103'), 
	(5564, '234456977555', '20 Soojian Dr, Leicester MA 154'), 
	(4534, '987656789666', '780 Lynnway, Lynn MA 19'), 
	(7648, '756489372222', '700 Oak Street, Brockton MA 23');

无涯教程可以使用SELECT语句验证数据。见下图:

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-equijoin.html

来源:LearnFk无涯教程网

MySQL EquiJoin

要使用equijoin连接三个表,无涯教程需要执行以下语句:

mysql> SELECT C.customer_name, C.account, B.balance, I.mobile 
FROM customer AS C, balance AS B, cust_info AS I
WHERE C.account = B.account_num 
AND B.account_num = I.account_no;

它将给出以下结果。

MySQL EquiJoin

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入剖析Kubernetes -〔张磊〕

黄勇的OKR实战笔记 -〔黄勇〕

Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕

编译原理实战课 -〔宫文学〕

说透芯片 -〔邵巍〕

如何成为学习高手 -〔高冷冷〕

Go进阶 · 分布式爬虫实战 -〔郑建勋〕

手把手教你落地DDD -〔钟敬〕

现代C++20实战高手课 -〔卢誉声〕

好记忆不如烂笔头。留下您的足迹吧 :)