MySQLEquiJoin

/ / MySQLEquiJoin

当无涯教程根据一些公共列和连接条件合并两个或多个表时,该过程称为连接。 等值联接(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

祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)

精选教程推荐

👇 以下精选教程可能对您有帮助,拓展您的技术视野

跟月影学前端智能体开发 -〔月影〕

RAG系统实战课 -〔叶伟民〕

如何讲好一堂课 -〔薛雨〕

高楼的性能工程实战课 -〔高楼〕

重学线性代数 -〔朱维刚〕

罗剑锋的C++实战笔记 -〔罗剑锋〕

Serverless入门课 -〔蒲松洋(秦粤)〕

性能测试实战30讲 -〔高楼〕

MongoDB高手课 -〔唐建法(TJ)〕

📝 好记忆不如烂笔头,留下您的学习笔记吧!

暂无学习笔记,成为第一个分享的人吧!

您的笔记将帮助成千上万的学习者