问题标签 [in-subquery]
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 - 如何在 mysql 中优化这个 IN 子句?
我有以下表结构:
和这个:
运行的查询是这样的:
显然,这个查询效率不高,并且执行起来需要大量时间。请建议我优化它的最佳方法。
根据以下 peterm 添加 EXPLAIN 命令的结果:
sql - IN 子查询的 WHERE 条件影响主查询 - 这是功能还是错误?
假设有两个表:
在以下示例中, is something
是针对固定值(例如 = 'ABC'
或 < 45
)检查的条件。
我写了如下查询(1):
我真正想写的是(2):
奇怪的是,两个查询都返回了相同的结果。查看查询1的解释计划时,它看起来像执行子查询时,因为条件不适用于子查询,所以它被推迟用作主查询结果的过滤器。A2 is something
我通常希望查询1失败,因为子查询本身会失败:
但我发现情况并非如此,Postgres 将不适用的子查询条件推迟到主查询。
这是标准行为还是 Postgres 异常?这是在哪里记录的,这个功能叫什么?
另外,我发现如果我A2
在 table 中添加一列B
,则只有查询2可以按预期工作。在这种情况下A2
,查询2中的引用仍将引用A.A2
,但查询1中的引用将引用新列B.A2
,因为它现在可以直接应用于子查询。
mysql - 使用 MYSQL 获取绝对包含给定记录集的随机记录
我想使用这样的查询;但我知道这不是真正的用法。
我总共需要 15 个类别 ID(4、5、6、9、10 和随机 10 个 ID,而不是指定的)
试过这个
你能帮我编辑这个吗?
非常感谢。
mysql - 检索具有“有”条件的子查询中的单个列
好吧,我有一个包含“有”条件的子查询。所以我必须在select子句中添加条件中的参数,对吗?
所以我有子查询:
但实际上我只对第一列感兴趣:我只想检索id
.
我的整个声明的摘录是
当返回四列时明显失败了:(我能做什么?
更新:选择只会sfd.id
导致错误:ERROR 1054 (42S22): Unknown column 'sfd.StartTime' in 'having Clause' 更改 'have'
join - 教义:在子查询中加入多个值
我在 SQL 中创建了一个查询,但我不知道如何用教义重现。困难在于,我想在子查询中加入 2 个值。这是我的 SQL 查询:
SELECT u.nom
FROM profile p1
JOIN user u ON u.id = p1.id_user
JOIN (
SELECT MAX(p2.annee) defyear, p2.id_user
FROM profile p2
GROUP BY p2.id_user
) t2 ON p1.id = t2.id_user AND p1.annee = t2.defyear
WHERE p1.att1 = 1
谢谢您的帮助。
mysql - MySQL嵌套,嵌套子查询没有得到外部变量
我有一个支出表和一个日期表,它们由 date_id 和 id 连接...
我想要做的是从 1 个查询中获取来自支出的所有信息,加上所有支出的总和,但有一个限制和/或偏移量
这是现在的查询
输出
它有效,但前提是此处的日期与此处day(d.date) = 25
的外部日期相同day(dates.date) = 25
相反,如果我把这day(d.date) = day(dates.date)
似乎是合乎逻辑的事情,我会得到#1054 - Unknown column 'dates.date' in 'where clause'
如果有人想让这个更简单,请告诉我:)
mysql - WHERE IN 子查询不按预期工作
我正在尝试使用我创建的父路径从我的类别表中获取结果。当我使用手动数据启动请求时,它运行良好。当我使用子查询动态尝试相同的请求时,我只得到一个结果而不是预期的 4 个。我不明白为什么,你能帮我吗?
http://sqlfiddle.com/#!2/88b68/6
预先感谢,
问候,
mysql - 在子查询中使用来自查询的逗号分隔字符串
我想使用逗号分隔的 ID 字符串作为同一查询的输入。
IE:
实际查询要复杂得多,但我需要实现的是将逗号分隔的 ID 字符串分配给变量,并在带有 IN 子句的子查询中使用该字符串。
以上不起作用。我将不胜感激任何反馈。
谢谢!
postgresql - PostgreSQL 什么时候将子查询折叠到连接,什么时候不?
考虑以下查询:
哪个应该可以重写为更快的:
我们不希望通过更改我们的源代码来重写我们的查询,因为它很复杂(尤其是在使用 Django 时)。
因此,我们想知道 PostgreSQL 什么时候将子查询折叠到连接,什么时候不?
那是简化的数据模型:
- a 有 700 万行
- b 有 7000 万行
- bx 的基数 = ~100
- by = ~100000 的基数
- bx 的基数,由 = ~150000
- 想象表 c、d 和 e 具有与 b 相同的结构,并且可以额外用于进一步减少生成的 a.ids
PostgreSQL 的版本,我们测试了查询。
PostgreSQL 9.2.7 on x86_64-suse-linux-gnu, compiled by gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012], 64-bit
PostgreSQL 9.4beta1 on x86_64-suse-linux-gnu, compiled by gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012], 64-bit
查询计划(带有空文件缓存和内存缓存):
sql-server - 左内连接以获取上一个日期的值
我试图在以下查询中获取上一个日期 TabDate 的 GR2 值:
我得到的是2个错误:
消息 207,级别 16,状态 1,第 47 行无效的列名称“ttab.TabDate”。消息 207,级别 16,状态 1,第 47 行无效的列名称“tprev.TabDate”。
“LEFT JOIN tbl_Tabel tprev”有问题。“AND [ttab.TabDate] =DATEADD("DAY",-1, [tprev.TabDate] )”行中的字段出现错误。我在这里做错了什么?