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 的表,其中包含以下数据:

对联接表执行下面的equijoin语句:
mysql> SELECT cust. customer_name, bal.balance FROM customer AS cust, balance AS bal WHERE cust.account = bal.account_num;
无涯教程将得到以下结果:

mysql> SELECT cust. customer_name, bal.balance FROM customer AS cust JOIN balance AS bal WHERE cust.account = bal.account_num;
请参阅以下输出,该输出与上一个查询返回的结果相同:

三个表进行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');

要使用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;
它将给出以下结果。
祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)
精选教程推荐
👇 以下精选教程可能对您有帮助,拓展您的技术视野
暂无学习笔记,成为第一个分享的人吧!
您的笔记将帮助成千上万的学习者