问题标签 [derived-table]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 在派生表上具有复杂连接的 Active Record 查询?
我正在使用 Ruby、Sinatra 和 MySQL。我有四张桌子。
联系人(客户):
订单:
订购产品:
和产品:
我编写了以下 SQL 查询以获取以联系人为中心的统计信息。
我想把它完全翻译成 Active Record 格式。我能够正确地转换和运行它,但是下面的内部连接让我望而却步,我不得不直接粘贴 SQL:
我只报告翻译后的 SQL 查询的一部分,因为派生表上的连接翻译对我来说最重要。我发现它远没有那么优雅和可读性,例如:
任何帮助,将不胜感激!
谢谢,卢卡
sql - 游标中的 CTE 给出“连接正忙于处理另一个命令的结果”错误,而派生表没有
我最近在从使用 CTE 的查询上的游标中获取时遇到了错误。
“[Microsoft][SQL Server native Client 10.0]Connection is bust with results for another command”
该错误发生在在每次提取迭代中执行的后续游标上。
我能够通过用派生表替换 CTE 来解决错误。
我需要知道为什么派生表工作正常,而 CTE 失败,以及我在 CTE 示例中是否做错了什么。
原来的查询比较复杂,涉及到多个join,但基本上有以下几种:
有问题的代码将使用上述语句循环遍历游标,并且对于 FETCH 的每次迭代,它将执行第二个游标:
在 FOREACH 语句期间从应用程序打开的任何游标都会失败,并出现我上面提到的错误。
但是,如果我删除 CTE 并使用派生表,我不会收到错误并且一切正常。
mysql - 具有分组和派生表的多个联接
我有四个 MySQL 表:contacts、orders、ordered_products 和 products,我正在尝试编写一些报告查询。这是其中之一:
一切都按预期工作,尽管如果我添加(并且我需要添加)另一个 [LEFT|INNER] JOIN(例如:INNER JOIN orders ON orders.contact_id = contacts.id),行 SUM 总数搞砸了(他们似乎根据订单数量重复,三份...)。我想问题可能是第一个连接派生表中的多个分组。然而它却让我望而却步。在这里,您可以找到上述查询的略微变体。即使是这个微小的修改也能够触发“问题”:
上述路径是死胡同。在@Gordon Linoff 的帮助下,我找到了更好的方法。报告目标之一是在客户/联系人基础上计算总产品成本金额和总产品销售金额。我专注于通过两个单独的连接来做到这一点。似乎一个就足够了(避免包括几次几乎相同的表):
谢谢,卢卡
sql - SQL Server 中的派生表
我有这两个疑问。我不知道如何将它们组合在一起以制作派生表。我假设将第二个查询用作主查询,并在主查询的 FROM 子句中使用第一个查询。
sql - 索引是否保留在派生表上?
假设我有一个大表,其中包含来自各种文件的基因组位置,如下所示:
我想将 1 个文件的内容与所有其他文件的所有内容进行比较,以查找重叠。所以我使用派生表。
现在,如果我按该顺序在 file_id、chromo_id、位置上添加复合索引,派生表是否能够使用该索引?(使用 Postgres)
sql - CTE top-order by 子句并不总是有效
我有以下 T-SQL 语句:
它根本不是返回相同的结果。我无法理解方式,但有时 CTE 中的 T-SQL 语句没有返回正确的值是因为产生了不同的结果,不是每次,而是有时(更准确地说,我得到三个不同的结果) .
如果我只执行以下语句:
我每次都得到相同的结果。如果我使用派生表也没有问题:
谁能解释为什么 CTE 每次都没有返回正确的结果?
mysql - 派生表中的 MySQL 联合 (related_id=a AND related_id=b) 或 (related_id=z)
我有以下表格:users
, tags
, tags_data
.
tags_data
包含tag_id
和user_id
列以将1 个用户与多个标签的关系链接users
起来。tags
tag_id
列出具有1001和1003或 tag_id
1004的所有用户的最佳方式是什么?
编辑:我的意思是,也可能有其他相关的标签,只要肯定有 1004 OR (1001 AND 1003)。
目前我有两种方法可以做到这一点,都UNION
在派生表中使用 a ,无论是在FROM
子句中还是在INNER JOIN
子句中......
或者
还有其他表,我将对此进行LEFT JOIN
讨论。表中有 50k+ 行,users
表中有 150k+ 行tags_data
。
这是将数据导出到另一个系统的批处理作业,因此不是最终用户运行的实时查询,因此性能并不是非常关键。但是,我想尝试并获得最好的结果。派生表的查询实际上应该非常快,并且在我向返回给客户端的结果添加进一步的连接、函数和计算字段之前缩小结果集的范围是有意义的。稍后我将在更大的数据集上运行这些,以查看是否存在任何性能差异,但运行EXPLAIN
显示几乎相同的执行计划。
一般来说,UNIONs
除非绝对必要,否则我会尽量避免。但我认为在这种情况下,我几乎必须有一个UNION
定义的地方,因为这两个实际上不相关的标准。
我可以在这里使用另一种方法吗?
对于这类问题,是否有某种特定的数据库术语?
完整示例架构:
mysql - SQL 数据库函数
我试图用它来计算每个用户贡献了多少推文,并将其放在一个名为 numTwt 的新列中:
但它似乎不起作用。
database - SQLite3 数据库中的派生字段
各位晚上好,
今天想请教一个关于SQLite3中派生字段(也称为计算字段)的问题。
利用存储在我的数据库“重量”和“距离”中的两个值,我知道可以利用它们来执行计算,以使用需要两者的公式返回我想要的值。
但是我想知道是否有一种方法可以通过 SQLite 编码设置一个字段来自动生成自己的值,所以一旦他们输入了重量和距离并执行了计算,“卡路里燃烧”的属性字段将是人口稠密。
或者,我在几个网站上阅读过,由于 3NF 要求,3NF 数据库的派生字段不应存储在数据库中,如果是这样,我将不得不在我希望检索值时继续执行选择计算。
谢谢
JHB92
mysql - JOIN 语句中双嵌套派生表中的未知列
在我的数据库中,有两种类型的图像:挑战和答案。它们都有 lat/lng 位置列。在此查询中,我希望选择用户最近通过 INNER JOIN 创建的挑战或答案。
(这背后的业务逻辑:我们基本上想要获得一个用户列表,其中包括用户的最后一个已知位置,该位置由他们最近的挑战或答案决定 - 以最近的为准。如果用户没有最后一个已知位置,它们不应包含在此列表中。)
我得到[Err] 1054 - Unknown column 'U.Id' in 'where clause'
:
我似乎无法从派生的“LastImages”表(或任何合适的术语)中引用用户表(别名 U)。
任何人都可以帮忙吗?我尝试了其他方法,但没有一个能满足我的所有要求:
- 仅当用户至少有1 个挑战或 1 个答案时才返回一行(因此是 UNION)
- 最新的(由 ChallengeImage.CreatedOn 和 AnswerImage.CreatedOn 确定)图像将用于连接
谢谢!