问题标签 [sql-except]

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.

0 投票
2 回答
47 浏览

sql - 除了它在其他 2 个表中退出

我需要从 table product 获取所有值,除了它们在其他 2 个 table products 中退出。使用 2 EXCEPTS 可以接受此查询吗?这是否应该以不同的方式进行。

0 投票
1 回答
1349 浏览

sql - 检查两个 select 语句是否在给定数据集上返回相同的结果

我遇到了上面的查询来解决这个问题。我在 postgres 9.4 上做了一些试验,这是我的结果。

1不支持减号,所以需要使用 EXCEPT

[2] 仅使用 EXCEPT 不考虑重复,因此必须使用 EXCEPT ALL

[3] EXCEPT ALL 要求结果中的列顺序应该相同,因此在上面的查询中QUERY1应该QUERY2返回相同的列顺序,或者我们必须包装查询并确保列顺序相同。(这可能发生在应用程序中逻辑)

因此,如果我们牢记以上三点,我们将 100% 确定我们的结果,对吧?

注意:我在问题的答案中也提到了上述 3 点。我已经在这里问过了,所以我可以确定

0 投票
1 回答
2830 浏览

sql - SQL,仅结合两个具有不同值的表(仅基于三个字段,而不是整行)

我正在尝试组合三个表,应用程序、音频、视频。它们都具有相同的架构,但音频和视频中存在“重复”。视频中的条目也将始终显示在音频中。我将重复项放在引号中,因为整行没有重复,而是基于它们的三个字段。

音频表

视频表

应用表

我想将它们组合到一个表中,当有重复时保留来自视频的数据 - 所以你会看到约翰只出现一次,质量和呼叫类型来自视频表:

我试图使用 EXCEPT 和 UNION 来选择音频中没有出现在视频中的所有行,然后加入视频,但是因为它认为它们是独一无二的,因为 calltype 总是不同的,而且质量可能会不同。

0 投票
3 回答
4785 浏览

mysql - EXCEPT 命令 - 查找已预订所有船只的水手

我正在阅读一本教科书,但我不明白这个查询:查找已预订所有船只的水手。

  • 我们有 3 张桌子:
    1. 水手:sid、sname、等级、年龄(主要:sid)
    2. 船:出价(主要:出价)
    3. Reserves: sid, bid, day (primary, sid, bid, day) (sid是水手的外键,bid是船的外键)

对于查询,查找已预订所有船只的水手,给出的答案是:

我的问题是:

  1. 上面的查询有问题吗?当我将它放入 MySQL Workbench 时,它显示我有语法错误,除了

  2. 除了上面书中给出的解决方案,还有没有其他的查询方式:查找已预订所有船只的水手

谢谢,

0 投票
1 回答
68 浏览

sql - 两个缓冲区的差异

我想围绕一条线创建一个 100m 的缓冲区。但我不想选择第一个 20m 缓冲区。我试过这样的事情:

但是在QGIS中检查后它没有工作。我该如何解决这个问题?

0 投票
2 回答
56 浏览

sql-server - 有没有办法在只使用部分列的 MSSQL 上运行除查询?

我需要做的是以下几点:

我的数据库中有一个这样的表:

然后我得到一个secondTable:

我想运行一个 except 查询,例如:

和这样的相交查询:

所以第一个查询的结果将是:

第二个查询的结果将是:

我还找到了以下建议的解决方案:

但是如果我在两个表上都有“john - null”,它会将它们视为未知(既不相等也不不相等)。我知道原因,但我确实需要他们平等。

我需要这样做的原因是为了将当前索引值保留到查询结果中。

0 投票
5 回答
7641 浏览

sql - 以性能替代 SQL 中的“除外”

我在 MS-Sql 中有一个表 TableA

场景是少数 TrId 的状态为 3 和 0 ,有些只有 3 ,有些只有 0 。我只需要找到状态为 3 的 TrId。
其中一种方法是:

有超过 1 亿条记录,我没有足够的时间窗口,除非,对此的任何替代方案将不胜感激。

0 投票
1 回答
1705 浏览

sql - 使用 SQLite 组合两个查询的结果

假设我有以下表格:

我想找到与两个表不同的所有行。

这给了我 A 中不在 B 中的行:

这给了我 B 中不在 A 中的行:

因此,将我尝试使用的两者结合起来

但它仍然只给了我来自 B 的行。

我如何从两个表中获取行,像这样?

0 投票
1 回答
1811 浏览

performance - Redshift EXCEPT 比 LEFT JOIN 慢得多

我正在尝试将一个临时表(“新数据”)与另一个表(“现有数据”)进行比较,以识别添加/更改/删除的行,并最终确定一个 upsert。这是一项昂贵的操作 - 在大型数据集上进行完全差异。我真的很想使用该EXCEPT命令来提高语法清晰度,但是我遇到了严重的性能问题,并且 find aLEFT JOIN更好。

这两个表具有相似的行数和相同的架构(几乎 - “第二个”表有一个附加created_date列)。

他们都共享distkey(date)sortkey(date, id1, id2); 我什至在EXCEPT语句中以“正确”顺序指定列以帮助优化器。

下面是针对每个测试大小的数据子集的查询计划。

和我比起来更丑LEFT JOIN

查询成本是1000003266822.61vs 68706795.68。我知道我不应该在查询之间进行比较,但它在执行时间中得到了证明。任何想法为什么一个EXCEPT语句比LEFT JOIN这里慢得多?

0 投票
1 回答
573 浏览

sql - 我的 SQL-EXCEPT-Operator 出了什么问题?