问题标签 [union-all]
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.
php - 在 SQL 部分 2 中合并相似的表
我认为上次人们不愿意帮助我,因为我不想发布专栏,但我很想解决这个问题,所以我放弃了我更好的判断并把它暴露出来。
好的,我有两个相似的表,我使用 MySQL 和 PHP 来生成表。到目前为止,我有 3 张桌子:
我需要完成的第一步是通过 apn_1/apn1 将格林威治连接到利物浦。相同的记录不一定在两者上,甚至可能存在重复。我用来创建这个表的 php 在 UNION ALL 周围抛出了一个语法错误:
谁能看出这有什么问题?
之后,我需要通过 cust_index/cust_index_ 将结果表链接到 cpe_cust_index,所以理想情况下我认为我需要合并这些单元格。如果这些细胞存在于格林威治和利物浦,它们将永远是相同的。
提前致谢!
join - 水平 UNION ALL
我有两个表,我需要从每个表中选择一列。这必须在单个查询中完成。好消息是这两列以正确的方式排序,并且它们都包含相同数量的行。现在,我知道我可以通过 rowid 加入两个表,但它很慢,因为它必须进行比较。在我的情况下,没有必要......我需要更像水平 UNION ALL 来连接两列长度相等的列。
在 SQLite 3 中是否有可能发生这样的事情?
谢谢。
表格1:
表 2:
所需的选择输出
查询:
这在我的测试应用程序中大约需要 0.75 秒。当我稍后在程序中执行两个单独的 SELECT 并加入输出时,大约需要 0.4 秒,但这不是很方便。最快的方法(~0.23s)是将两列都放在一个表中,但这很浪费,因为我有多个版本的 TABLE2 共享相同的时间戳。
sql-server - SQL 2000 UNION ALL 破坏查询优化
我有一个存储过程,它需要不到一秒钟的时间才能正常运行。用户想要该查询中另一个表中的数据,因此我将该数据与 UNION ALL 和新表中缺少的一堆虚拟列合并。
它在测试中运行良好,但是当我们将它部署到 SQL 2000 服务器时,它开始出现超时。旧查询在一秒钟内运行,两个新查询都在一秒钟内运行,但是当它们使用 UNION ALL 组合时,查询超时。
这是查询外观的一般概念。真正的查询有大约 20 个输入参数并返回大约 30 或 40 列,但这应该给出基本概念:
在上面的示例中,@Criteria1 不为空,因此第 1 部分和第 2 部分将返回 0 行,而第 3 部分仅返回 3 行。但是如果我注释掉第 1 部分和第 2 部分,它会立即结束;如果我把它们留在里面,我会超时。
在这种情况下,你如何说服 SQL Server 不要乱搞它的执行计划?
mysql - 将 DISTINCT 添加到 UNION 查询
我如何从中获得不同的title.id:
查询还有更多内容,但这应该足够继续了。
mysql - MySQL LOOP 用于从多个表中收集数据
我环顾四周,似乎无法找到满足我需求的解决方案,所以我希望你能提供帮助。(我对 MySQL 有点陌生,尽管我确实有大量的 SQL Server 和 Oracle 经验可以借鉴。)
我有一个包含几个表的数据库。
第一个表是定义表,存储基本信息,称为cp_def:
然后,对于 cp_def 表中的每条记录,都有一个对应的 cp_[cid] 表(其中 [cid] 是 cp_def 表中的 cid 值)。例子:
我需要每天运行一个动态查询(作为 shell 脚本和 cron 作业的一部分)以输出所有 cp_[cid] 表中所有记录的代码和 date_expired 列值,其中 date_issued 值是前一天的日期。
我有一个查询工作(见下文)。但是,每次我添加一个新的 cp_[CID] 表时,都需要我手动将另一个 UNION ALL 语句附加到查询的末尾。
我的最终目标是在执行时以编程方式生成上述查询,以便每次将新的 cp_[CID] 表添加到数据库时,都不需要手动干预。
我尝试使用视图。但是,添加表似乎仍然需要手动更改视图,以考虑新表。
鉴于每个 cp_[CID] 表都列在 cp_def 表(以及 INFORMATION_SCHEMA 表)中,我想我可以执行某种循环来构建动态查询,但我还没有完全弄清楚。为了保持简短,我将避免发布我在循环 cp_def 表以创建动态查询时失败的尝试。
您可以提供任何帮助来为我指明正确的方向来制作这样的查询,我们将不胜感激。如果我忽略了某些事情,我深表歉意。我已经尝试使用许多不同的短语来准确搜索我正在寻找的内容,但无济于事。
sql - 这是一个有据可查的模式吗?
我试图找出以下是否是用于减少应用程序延迟的有据可查的模式(或反模式)。我已经尝试过这种技术,从表面上看,这似乎为我节省了大约 20% 的延迟。我想知道是否有任何我应该注意的副作用
语境:
你有一个方法/函数/过程,它对数据库进行多次 SELECT 调用,你需要优化它。
假设您的方法流程是:
解决方案:使用 Union ALL 对数据库进行一次调用
sql-server - 3 个 SELECT 中的 2 个与 UNION 结合返回的行数
我很难为这篇文章命名。
我们如何才能完成以下任务?
结果应如下所示:
请帮忙; 感谢 SOF 社区。
sql-server-2008 - SQL Server:是否可以在不使用临时表的情况下在 SELECT 语句中合并两个表?
我正在创建一个存储过程,它根据查询设置 3 个变量,我必须返回MAX
它们的值。我试图在不使用临时表的情况下这样做,但是以下给了我错误Incorrect styntax near ')'
我也试过
我得到了错误Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
我还尝试绕过变量并UNION
在子查询中使用 a ...
这也给了Incorrect syntax near ')'
有什么想法或建议吗?临时表是我唯一的选择吗?
sql - 我有一个很大的查询,我该如何调试?
因此,我收到此错误消息:
有问题的查询是一个大查询,由 12 个较小的查询组成,所有查询都通过 UNION ALL 连接在一起,每个小查询都有两个内部连接语句。所以,像:
请注意,table2 和 table3 在每个查询中都是相同的表,并且我认为 table2 和 table3 中的字段也相同。
快速提问(我对这一切还是有点陌生):
“Leads”作为 Type 是什么意思?与 AS 之前的其他语句不同,这个语句不像 table.something 那样写。
快速编辑问题:table2.groupid in ('2','3','4') 是什么意思?
我一一检查了每个小查询,每个小查询都有效并返回一个结果,尽管由于某种原因结果总是空的(这可能取决于或可能不取决于登录的用户,因为一些 PHP 代码生成了这个查询)。
至于结果本身,它们中的大多数看起来像这样(虽然它们是水平排列的):
结果的差异有两个: 1)大多数结果包含相同的字段名称,但其中相当一部分具有不同的字段长度。就像有些人会说字符变化(80),而其他人会说字符变化(100),如果这实际上不是字段长度,请纠正我。2)2个查询包含不同的字段,但只有id字段不同,这可能是因为它们没有“as id”部分。
我不太确定 UNION ALL 的要求是什么,但如果我认为,它意味着只有在所有字段都相同的情况下才有效,但如果那个时髦的数字发生变化(括号中的那个),那么是即使它们具有相同的名称,它们也被认为是不同的字段?
此外,奇怪的是一些查询返回完全相同的字段,具有相同的字段长度,所以我尝试只对这些查询进行 UNION ALL,但没有运气,在 UNION 仍然出现语法错误。
我应该提到的另一个重要的事情是数据库曾经是 MySQL,但我们更改为 PostGreSQL,所以这个错误可能是更改的结果(即可能在 MySQL 中工作但在 PostGres 中不工作的代码)。
谢谢你的时间。
mysql - 为什么输出数据与 Union All 查询中的列不对应
这是输出的一部分
array(7) { ["type"]=> string(16) "new post comment" ["book_id"]=> string(1) "1" ["name"]=> string(9) "whatever" [ "author_id"]=> string(4) "test" ["content"]=> string(19) "2011-07-16 03:20:01" ["create_time"]=> string(1) "3" ["id"]=> 字符串(1) "1" }
这是我查询的一部分
结果显示,“author_id”对应的数据应该对应“content”,“content”应该是“create_time”。我的查询有什么问题?