提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:鲍佳佳|2021-04-15 11:25:48.873|阅读 120 次
概述:本文介绍了有关MySQL JOIN的详细教程。在其中,您将了解MySQL支持的不同类型的JOINS,它们的语法以及如何使用它们。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
dbForge Studio for MySQL是一个在Windows平台被广泛使用的MySQL客户端,它能够使MySQL开发人员和管理人员在一个方便的环境中与他人一起完成创建和执行查询,开发和调试MySQL程序,自动化管理MySQL数据库对象等工作。
本文介绍了有关MySQL JOIN的详细教程。在其中,您将了解MySQL支持的不同类型的JOINS,它们的语法以及如何使用它们。
MySQL JOIN简介MySQL中
不同类型的JOIN
1. MySQL INNER JOIN子句
2. MySQL OUTER JOINs
2.1 MySQL LEFT JOIN子句
2.2 MySQL RIGHT JOIN子句
3. MySQL CROSS JOIN子句
MySQL JOINs准则
结论
MySQL JOIN简介
MySQL数据库通常存储大量数据。为了有效地分析数据,分析师和DBA一直需要根据特定条件从两个或多个表中提取记录。这就是JOIN助力的地方。
JOINS用于在单个查询中从多个表中检索数据。为了使JOIN起作用,这些表需要使用一个公共键值相互关联。
JOIN子句在SELECT,UPDATE和DELETE语句中使用。
MySQL中不同类型的JOIN
MySQL JOIN类型定义查询中两个表的关联方式。MySQL支持以下类型的JOIN子句:INNER JOIN,OUTER JOIN和CROSS JOIN。外连接可以进一步分为 左连接和 右连接。
为了更好地演示JOIN的工作原理,我们将创建两个表。
CREATE TABLE `users` ( `auid` int(10) UNSIGNED NOT NULL, `username` varchar(100) NOT NULL, `password` varchar(150) NOT NULL, `createdate` datetime NOT NULL, `isActive` tinyint(1) NOT NULL ); CREATE TABLE `userprofile` ( `apid` int(10) UNSIGNED NOT NULL, `auid` int(10) UNSIGNED NOT NULL, `firstname` varchar(50) NOT NULL, `lastname` varchar(50) NOT NULL, `email` varchar(100) NOT NULL, `phone` varchar(45) NOT NULL );
并用数据填充它们。
Insert into users (auid, username,password, createdate, isActive) values (1,'admin','pswrd123', curdate(), 1); Insert into userprofile (apid, auid, firstname, lastname, email, phone) values (1,1,'Jack', 'Wolf', 'bettestroom@gmail.com','600075764216'); Insert into users (auid,username,password, createdate, isActive) values (2, 'admin1','pass506', curdate(), 1); Insert into userprofile (apid, auid, firstname, lastname, email, phone) values (2, 3, 'Tom', 'Collins', 'tnkc@outlook.com','878511311054'); Insert into users (auid, username,password, createdate, isActive) values (4,'fox12','45@jgo0', curdate(), 1); Insert into userprofile (apid, auid, firstname, lastname, email, phone) values (4,5,'Bill', 'Fonskin', 'bill_1290@gmail.com','450985764216'); Insert into users (auid,username,password, createdate, isActive) values (6, 'lexus1267','98hnfRT6', curdate(), 1); Insert into userprofile (apid, auid, firstname, lastname, email, phone) values (7, 7, 'Ivan', 'Levchenko', 'ivan_new@outlook.com','878511311054');
1. MySQL INNER JOIN子句
INNER JOIN用于仅获取常见的匹配记录。INNER JOIN子句仅允许检索表A和表B中满足联接条件的那些记录。这是使用最广泛的JOIN类型。
为了更好地了解INNER JOIN,请看下面的维恩图。
这是MySQL INNER JOIN的语法:
SELECT columns FROM tableA INNER JOIN tableB ON tableA.column = tableB.column;
2. MySQL外连接
与INNER JOINs相反,OUTER JOINs不仅返回匹配的行,而且还返回不匹配的行。如果联接表中存在不匹配的行,则将为它们显示NULL值。
MySQL中有以下两种类型的OUTER JOIN:MySQL LEFT JOIN和MySQL RIGHT JOIN。让我们仔细看看它们中的每一个。
2.1 MySQL LEFT JOIN子句
LEFT JOIN允许检索表A中的所有记录以及满足连接条件的表B中的那些记录。对于表A中与条件不匹配的记录,将显示NULL值。
为了更好地了解LEFT JOIN,请研究下面的维恩图。
这是MySQL LEFT JOIN的语法:
SELECT columns FROM tableA LEFT [OUTER] JOIN tableB ON tableA.column = tableB.column;
2.2 MySQL RIGHT JOIN子句
因此,RIGHT JOINs允许检索表B中的所有记录以及满足连接条件的表A中的那些记录。对于表B中与条件不匹配的记录,将显示NULL值。
下面是维恩图,可让您更深入地了解RIGHT JOIN。
这是MySQL RIGHT JOIN的语法:
SELECT columns FROM tableA RIGHT [OUTER] JOIN tableB ON tableA.column = tableB.column;
3. MySQL CROSS JOIN子句
MySQL CROSS JOIN,也称为笛卡尔联接,从每个表中检索所有行组合。在这种类型的JOIN中,如果未引入其他条件,则通过将表A的每一行与表B中的所有行相乘来返回结果集。
为了更好地理解CROSS JOIN,请研究下面的维恩图。
什么时候需要这种JOIN?设想您必须找到产品和颜色的所有组合。在这种情况下,CROSS JOIN将是非常有利的。
这是MySQL CROSS JOIN的语法:
SELECT columns FROM tableA CROSS JOIN tableB;
MySQL JOINs准则
MySQL中的JOIN允许您使用单个JOIN查询,而不是运行多个简单查询。因此,您可以获得更好的性能,减少服务器开销,并减少MySQL和您的应用程序之间的数据传输数量。
与SQL Server不同,MySQL不支持FULL OUTER JOIN作为单独的JOIN类型。但是,要获得与FULL OUTER JOIN相同的结果,可以组合LEFT OUTER JOIN和RIGHT OUTER JOIN。
SELECT * FROM tableA LEFT JOIN tableB ON tableA.id = tableB.id UNION SELECT * FROM tableA RIGHT JOIN tableB ON tableA.id = tableB.id
使用MySQL JOIN,您还可以联接两个以上的表。
SELECT * FROM tableA LEFT JOIN tableB ON tableA.id = tableB.id LEFT JOIN tableC ON tableC.id = tableA.id;
结论
对于任何分析师和DBA来说,全面了解JOIN并在日常工作中自由使用它们至关重要。这就是dbForge Studio for MySQL必不可少的地方。即使对于复杂的JOIN子句,它的高级代码完成也可以完美地工作。您不需要记住数百个列名或别名,dbForge Studio for MySQL将提示您完整的JOIN子句。其功能丰富的功能极大地简化了和管理JOIN条件的过程。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文将演示如何使用DevExpress WPF Grid控件实现列和带的固定,欢迎下载最新版组件体验!
在本文中,我们将探讨如何通过使用 JxBrowser 和 Quill.js 将现代富文本编辑器嵌入到 Java 桌面应用程序中,来克服 Swing、JavaFX 和 SWT 中内置编辑器的局限性。
Word 文档中的批注通常用于协作审阅和反馈。这些批注可能包含文本和图片,它们为文档改进提供了重要的参考信息。本文将演示如何使用 Spire.Doc for Java 在 Java 中提取 Word 文档中的批注文本和图片。
本文主要介绍如何使用DevExpress WinForms Data Grid组件实现列重新排序,欢迎下载最新版组件体验!
dbForge Studio for MySQL是与专业化MySQL数据库紧密相连的先进开发环境。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢