提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:董玉霞|2022-06-10 10:26:54.423|阅读 161 次
概述:本文将介绍常见的SQL 查询错误, 数据库管理工具Navicat Premium是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
本文将介绍常见的SQL 查询错误, 数据库管理工具Navicat Premium是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。
在这个关于“常见的 SQL 查询错误”的系列中,我们一直在探索看似直观的 SQL 查询构造方法如何导致反模式,从而导致错误结果和/或性能降低。上周,我们暂停了这个系列,讨论了 SQL 中的谓词。在本期文竟中,我们将学习它们的位置如何对查询执行产生负面影响,尤其是在外部联接中。
在链接相关的表和视图时,可使用四种基本的联接类型:内部联接、左联接、右联接和外部联接。内部联接不会返回任何一个表中在另一个表中不匹配的行。外部联接可以返回一个或两个表中不匹配的行。而最后三种连接类型都是外部联接的一种,其中:
虽然外部联接在数据库从业者中肯定占有一席之地,但即使在不需要它们的情况下,开发人员也倾向于使用它们。此外,外部联接查询可能会产生完全不同的结果,具体取决于你构建它的方式以及你在查询中放置谓词的位置。为了说明这一点,让我们看看一个示例。
我们想检索所有客户的列表(无论他们是否下过任何订单),以及自 2005 年 6 月开始以来他们下的订单总数。为此,我们将使用外部联接来链接 customers 和 orders 表,如下所示:
SELECT C.customerName, count(O.customerNumber) AS 2005_orders FROM customers AS C LEFT OUTER JOIN orders AS O ON C.customerNumber = O.customerNumber WHERE O.orderDate >= '2005-05-01' GROUP BY C.customerName ORDER BY 2005_orders DESC;
查询结果应包含第一个表和第二个表中所有可能的行组合,也称为笛卡尔积。不幸的是,当我们在 Navicat Premium 16 中运行查询时,仅返回 13 行,尽管表中有 122 个客户(未显示):
为了理解哪里出了问题,让我们一步一步从列和外部联接开始重建查询:
现在我们得到了所有的客户。那些没有下任何订单的客户的 customerNumbers 为 NULL,因为它们来自 orders 表。
现在,让我们应用 WHERE 子句谓词:
问题是 WHERE 子句中的谓词将外部联接变成了内部联接。为了纠正这个问题,我们需要将 WHERE 谓词添加到联接条件:
我们现在可以调整原本的查询以获取所有客户:
谨记要时刻注意筛选掉的行的位置。在上述示例中,WHERE 子句是问题所在。在一个更复杂的示例中,如果有多个联接,错误的筛选可能发生在后续表运算符(如联接到另一个表)而不是 WHERE 子句中。
更多有关Navicat Premium使用教程可点击查看,欢迎加入Navicat Premium技术交流QQ群:765665608。
Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。了解更多购买详情可联系慧都在线客服。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
通过提供强大的3D CAD数据访问工具并适用于桌面、移动和Web的高级环境3D可视化发动机,HOOPS在提升造船设计和制造流程的效率方面发挥了重要作用。
HOOPS Luminate在汽车行业中的应用具有广泛的潜力和深远的影响。它通过提供高效的3D可视化、虚拟装配与拆解、性能分析、客户定制等功能,帮助汽车制造商在设计、生产和销售过程中提升效率、降低成本并提高产品质量。
在不断发展的软件开发世界中,使工具和框架与最新的平台版本保持同步至关重要,欢迎查阅~
全球航运业对国际贸易至关重要,全球 90% 以上的商品通过海运运输。准确监控和控制这些集装箱的移动对于维持高效的供应链至关重要。手动输入集装箱号码是这一程序的关键部分,它带来了相当大的挑战,例如人为错误和效率低下。
Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。
Navicat for OracleNavicat for Oracle是一套超强的Oracle数据库系统管理工具,包括数据模型工具、数据或结构同步、导入或导出、和报表,令维护数据的进程更容易。
Navicat for MySQLNavicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。
Navicat for SQL ServerNavicat for SQL Server 是一套专为 Mircosoft SQL Server设计的强大数据库管理及开发工具
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢