121得票5回答
使用LEFT JOIN或NOT EXISTS的最佳实践

在使用LEFT JOIN或NOT EXISTS格式之间,有没有最佳实践? 使用其中一种的好处是什么? 如果没有区别,应该优先选择哪一种? SELECT * FROM tableA A LEFT JOIN tableB B ON A.idx = B.idx WHERE B.idx...

119得票1回答
在同一查询中使用不同条件的Postgres计数

编辑 Postgres 9.3 我正在处理一个报告,该报告具有以下结构:http://sqlfiddle.com/#!15/fd104/2 当前的查询工作正常,如下所示: 基本上这是一个三个表的内连接。我没有制作这个查询,而是离开的开发人员,我想修改这个查询。正如你所看到的,Tota...

118得票3回答
一个大查询和许多小查询哪个更快?

我曾在不同的公司工作过,我注意到其中一些公司更喜欢将所有相关的数据都放在一个表中。但是在应用程序中,有时我们只需要使用其中的一列。 所以,是否只进行简单的选择查询,然后在系统代码中进行“连接”会更快呢? 系统可以使用php、java、asp或者任何与数据库连接的语言。 所以问题是,从服务...

79得票2回答
如何将表格与表值函数进行连接?

我有一个用户定义的函数: create function ut_FooFunc(@fooID bigint, @anotherParam tinyint) returns @tbl Table (Field1 int, Field2 varchar(100)) as begin -- b...

49得票4回答
个别查询比连接快吗?

概念性问题:个别查询比连接更快,还是应该尽量将我想要的所有信息挤入一个SELECT语句中,或者根据需要使用尽可能多的查询? 简而言之:如果我的连接查询比运行个别查询要花费更长时间,这是我的错还是可以预料到的? 首先,我对数据库不太熟悉,所以可能只是我个人的感觉,但我注意到当我需要从多个表中...

49得票8回答
可以将数据库的子集导出为mysqldump文件,以便重现查询吗?

背景 我想提供我的数据库子集,以便重现一个select查询。我的目标是使我的计算工作流程可重复(如可重复研究)。 问题 有没有办法将这个select语句合并到一个脚本中,将查询的数据转储到一个新的数据库中,以便该数据库可以安装在一个新的mysql服务器上,并且该语句可以与新的数据库一起使...

43得票5回答
我可以为左外连接提供一个默认值吗?

假设我有表a(具有列a1)和b(具有列b1和b2),然后执行左外连接。 SELECT * FROM a LEFT OUTER JOIN b ON a.a1 = b.b1 当a的值没有与b1匹配的值时,b1和b2将为NULL。 我能够提供一个默认值给b2吗?而不是NULL。注意,这里CO...

43得票2回答
为什么改变声明的连接列顺序会引入排序?

我有两个具有相同名称、类型和索引键列的表。其中一个表具有唯一的聚集索引,另一个表具有非唯一的索引。 测试设置 设置脚本,包括一些真实的统计数据: DROP TABLE IF EXISTS #left; DROP TABLE IF EXISTS #right; CREATE TABLE ...

43得票2回答
外连接(Outer Join)与左连接(Left Join)的性能比较

我正在使用SQL SERVER 2008 R2。 我刚刚了解到SQL中的APPLY,并喜欢它如何解决许多查询问题, 我之前使用了2个左连接来获取结果,现在只需要一个外部应用就能得到。 我的本地数据库表中有少量数据,部署后代码将在至少20倍大的数据上运行。 我担心对于大量数据,外部应用可...

41得票2回答
在另一个SELECT语句的WHERE子句中使用SELECT

我已经在libpq的基础上为PostrgreSQL制作了一个初步的远程应用程序。它的表现不错,但我对应用程序的整体功能进行了分析。对于我生成的每个最终业务结果,我会调用大约40个select子句(通过tcpip)。 我还记得SQL-Server给我留下的回忆,提醒我要尽量减少远程应用程序与数...