联合两个选择基于某些列(而不是整行)删除重复项

2024-01-04

我想合并 2 个 select 语句,结果将在记录方面不同,但是我想在第二个 select 语句中省略重复的结果(考虑某些列)

select id,name,[type],[parent] from table1 where [type] = 1 
union
select * from table2 // but exclude results from this table where
                     // a record with the same type and parent exists
                     // in the first select

我想到过这一点(未测试):

select * from(
select *,rank() over(order by [type],[parent]) [rank] from(
  select id,name,[type],[parent] from table1 where [type] = 1 
  union
  select * from table2) t
 ) a where rank = 1

但这似乎不对,是否有更好的方法从第二次选择中排除重复项?

Edit:

每个项目都可以有附加组件。附加组件有两种创建方式:

1.在表1中专门创建的附加组件

2.公开定义x类型的物品必须有附加组件

第一个 select 获取专门为 Items 创建的插件列表,table2 为所有 Items 创建一个插件列表。现在,如果有专门为某个 Item 创建的插件,将会有一个重复的插件。


try

select * from table1
union
select * from table2
where not exists(select 1 from table1 
                 where table2.parent = table1.parent 
                 and table2.type = table1.type)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

联合两个选择基于某些列(而不是整行)删除重复项 的相关文章

  • .net Framework 4.0 中地理 SQL Server 数据类型的 C# 等效项是什么?

    net web应用程序使用 net 4 0框架 我有一个存储过程 它接受 sql server 2008 R2 中的地理数据类型 我想将 C 代码中的数据插入 SQL Server 但我无法找到应在 C 中使用哪种与 SQL Server
  • Linq 选择与另一个表中的 ID 相等的项目

    我不确定这怎么可能 但我有两个表 我想通过表 1 的值从表 2 中获取值 表 1 有一个名为 rank 的外键 它是int 表 2 有一个名为 name 的值 它是string 现在表 1 的 排名 与表 2 的 ID 相关 所以当我说 v
  • LINQ to SQL:从位于不同服务器上的两个数据库获取记录

    我需要从两个不同的表中获取记录 数据库位于两个不同的 SQL Server 中 例如 销售数据库位于服务器 1 上 采购数据库位于服务器 2 上 销售和采购数据库都有一些表集 例如销售数据库中的 table1 和采购数据库中的 table2
  • 从 CTE 插入

    WITH DTL AS SELECT CMPI CODE CMN CDTY MTRL CMI WT FACTOR CMI CNTRCT RATE PL PRESENT PRICE TRM CODE ROUND NVL PRESENT PRI
  • MSSQL:如何使用代码编写存储过程创建脚本?

    我正在尝试使用一个数据库中存在但另一个数据库中不存在的 information schema routines 查询存储过程定义列表 SELECT t1 Routine Definition FROM server1 MyDatabase
  • 从 SQL Server 中的子查询值或其他聚合函数获取平均值

    我有 SQL 语句 SQL Server SELECT COUNT ActionName AS pageCount FROM tbl 22 Benchmark WHERE DATEPART dw CreationDate gt 1 AND
  • 随机排列每行的列值

    我正在使用 C NET 开发多项选择题考试生成器 每次做出报告时 都会在数据库中随机挑选问题 并随机调整选项 我可以做随机问题部分 但我不能做选择的洗牌 我有一张表 其中一行如下 question answer distractor1 di
  • JbdcTemplate - 带有动态 SQL 查询的PreparedStatements

    I know jdbcTemplate可以用来创建PreparedStatements如果你这样设置 i e private JdbcTemplate jdbcTemplate String sqlQuery Select from tab
  • 从 bak 文件恢复数据库 sql server 的脚本不起作用

    我有一个空数据库 DB Clients 我想从一个恢复数据库 bak file OldDBClients bak 这是路径 C OldDBClients bak 这是我的脚本 USE master GO RESTORE DATABASE D
  • 通过字符串操作预防 PHP SQL 注入[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 中防止 SQL 注入的最佳方法 https stackoverflow com questions 60174 best way to prevent sql injection in php
  • PostgreSQL & regexp_split_to_array + 取消嵌套

    我有这样的绳子 测试1 纽约 X 测试 2 芝加哥 Y 测试 3 宾夕法尼亚州哈里斯堡 Z 我需要的结果是 Column1 Column 2 Column3 Test 1 new york X Test 2 chicago Y Test 3
  • 如何在oracle中获取表作为输出参数

    我正在尝试将 Oracle 过程调用的 out 参数强制转换为对象 它不起作用 因为 据我了解 我需要定义一个映射 它告诉方法如何转换它 如果地图为空或未正确填充 则它默认为 STRUCT 类型的对象 在我的情况下这是错误的 我已经构建了一
  • 过滤项目来源

    通过此代码 我设置了数据网格的 ItemsSource 不过 我有更多的 wpf 控件来过滤数据网格 例如从时间范围过滤数据网格 我可以为此编写一个新查询 但这似乎没有必要 因为数据已经可用 我只需要过滤它 最好的方法是什么 我能得到的任何
  • 如何显示 RSpec 测试生成的 SQL 查询日志?

    我正在为我的 Rails 3 应用程序编写规范 我想测试数据库事务是否真的有效 如果能够看到我的应用程序在规范驱动下生成的 sql 查询 这将非常有帮助 有没有办法像在 Rails 控制台中一样查看查询 我正在使用 Rails 3 0 9
  • 使用显式值进行 BigQuery 合并

    据我所知 BigQuery 支持合并两个表 目前 INSERT操作允许将显式值插入表中 例如 INSERT dataset Inventory product quantity VALUES top load washer 10 front
  • 如何将此本机 SQL 查询转换为 HQL

    所以我有这个很长的复杂的 Native SQLQuery string hql SELECT FROM SELECT a rownum r FROM select f2 filmid f2 realisateurid f2 titre f2
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 如何限制两个表之间一对多关系中的多个数量?

    我有一个带有两个 MySql 表的 MySQL 数据库 第一个是第一个表 表 A 有一列具有唯一值 从值 从 1 到 n 在第二个表 2 表 B 中 我有两列 在第一个表中我有一个名称 在第二个我的值从 1 到 n 如果我在 中添加一个值
  • SQL Server查询麻烦,多对多关系

    不知道如何用一行字来表达这个问题 对标题表示歉意 我的数据库中有3个表 例如 Shop Item 商店库存 Shop 和 Item 具有多对多关系 因此 ShopStock 表将它们链接起来 ShopStock 中的字段是 ID ShopI
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可

随机推荐

  • 从 Metafor 中的混合效应多级模型获取 R 平方

    我正在 R 中对森林的特定处理进行荟萃分析 对于这个模型 我需要拟合随机效应来解释研究方法的差异和地点年龄的变化之间的差异 因为这两个都是混杂变量 而且我对调查由它们引起的变化并不明确感兴趣 然而 据我所知 包裹 metfor 当您拥有多级
  • Git - 查找索引中单个文件的 SHA1

    我已将一个文件添加到 索引 git add myfile java 如何找到该文件的 SHA1 这是一个老问题 但有一件事需要澄清 这个问题和下面的答案讨论Git 哈希值一个文件的不完全一样 该文件的 SHA1 正如问题中所问 简而言之 如
  • Flex - 访问另一个 mxml 页面上的静态变量时出现问题

    首先 mxml 包含 Datefield 控件如下
  • Java字符串replaceAll()

    我一直想知道是否例如 JTextPane chatTextArea new JTextPane s replaceAll emoticon public String emoticon chatTextArea insertIcon new
  • Angular:ng-bind-html 过滤掉 ng-click?

    我有一些从 json 文件加载的 html 数据 我通过在我的应用程序中使用 ngSanitize 并使用 ng bind html 显示此 html 数据 现在我想将 json blob 中的任何链接从标准转换为 a href some
  • MySQL 列名称标准/约定 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在寻找包含 MySQL 列名称标准或约定的文档 建议 有人可以建议吗 据我所知 这个领域没有什么 标准 与 Sun 的旧 Java 约定不同
  • 在泛型中接受自身作为类型参数有什么用

    我在一个不相关的问题上看到了一些代码 但这让我很好奇 因为我从未见过 Java 泛型的这种构造 创建一个可以将其本身或其后代作为类型参数的泛型类有什么用处 这是示例 abstract class A
  • 将 UIActionSheet 选项连接到操作的正确方法

    在 iPhone 应用程序中使用 UIActionSheet 时 将操作与按钮匹配的典型方法似乎非常脆弱且美观不愉快 也许是因为我的 C C 背景 更多 Perl Java Lisp 等 按钮索引的匹配看起来像是太多的神奇数字 而且太脱节
  • 是否可以在 iOS 9 和 10 上使用核心数据(Xcode 8 和 Swift 3.0)?

    我想在 Swift 3 Xcode 8 中启动新应用程序并支持 iOS 8 4 9 x 如何处理核心数据 对于任何寻找它的人 我在这个答案中添加了由 xcode 7 swift 2 生成的核心数据模板及其 swift 3 转换 https
  • 如何可靠地找到 UIGestureRecognizer 的正确视图?

    我有一堆 UIView 如下图所示 红色 粉色 半透明 视图位于其他视图之上 红色有一个UISwipeGestureRecognizer 绿色有作为UITapGestureRecognizer 蓝色没有识别器 轻按一下visible绿色的
  • Cython 基于外部值的条件编译

    我尝试从 Cython pxd 有条件地编译 或生成 为 c 代码 我读到我可以 DEF 定义 aa 值 并 IF 根据其值有条件地生成 但是如何从 pxd 文件外部获取该值 具体来说 这两个案例现在对我来说很有趣 为 Cython 提供一
  • 使用 NVIDIA GPU 计算 SDK 4.0 和 microsoft VC++ 2010 Express 无需 GPU 硬件即可执行简单的 CUDA 程序

    我是 GPU 计算新手 但我在某处读到 可以使用模拟器 仿真器在没有 GPU 卡的情况下执行 CUDA 程序 我在 Windows Vista 上安装了 NVIDIA 的 GPU 计算 SDK 4 0 和 Visual C 2010 Exp
  • 如何计算android应用程序的功耗?

    有没有公 式 API或者方法 我想测试不同应用程序的功耗 使用adb工具可以查看每个正在运行的应用程序的功耗 adb shell dumpsys cpuinfo 样本输出 Load 1 12 1 07 1 01 CPU usage from
  • 从文件读取时在 shell 脚本中拆分字符串

    我有一个以下脚本 它应该从 properties 文件中逐行读取 然后根据 分隔符对其进行标记 并将值存储到两个变量中 然后显示它 但我不了解如何对其进行标记 然后将其存储在两个不同的变量中 然后将其用于进一步的目的 以下脚本可以很好地逐行
  • fork进程之间的随机数是相同的

    我正在从管理器进程中分叉多个进程 然后我想为这些分叉进程创建一个随机端口号来侦听 但是 当我随机播种并获得随机数时 我在三个进程之间获得相同的数字 例如 manager int main for int i 0 i lt rCount i
  • 有没有办法使用普通 ADO 从 SQL Server 检索视图定义?

    我使用 ADO 连接成功从 SQL Server 上托管的数据库中提取列定义OpenSchema 调用其各种形式 以便我可以以编程方式在另一个 SQL 数据库中重新创建这些表 到目前为止 一切都很好 与上表的主要交互是使用多个视图进行的 尽
  • 使用 imagejpeg 保存和提供图像文件

    我正在用 PHP 图像处理做一些实验 我正在尝试将一些图像转换为黑白版本 我基本上已经弄清楚了 但有一个小问题 为了减少服务器的压力 我想保存黑白版本 并仅对之前未通过脚本运行的图像运行图像过滤 所以 我有这样的事情
  • 使用代理拦截 C# 中的方法调用

    我想做的是能够拦截对对象方法和属性的调用 以实现横切关注点 我正在使用基于代理的 AOPContextBoundObject 然而 这不适用于递归方法调用 针对目标的第一次调用将被代理拦截并成功调用 允许我在这里进行横切 但是 第一个方法中
  • 无法在嵌入式 ASPX 代码中引用动态对象

    我正在 Page Init 事件期间创建一个 List 成员变量 我在从 aspx 页面中嵌入的 C 代码引用列表中的对象时遇到问题 该错误是运行时绑定程序异常 显示 object 不包含 JobID 的定义 当调用调试器时 我可以看到 f
  • 联合两个选择基于某些列(而不是整行)删除重复项

    我想合并 2 个 select 语句 结果将在记录方面不同 但是我想在第二个 select 语句中省略重复的结果 考虑某些列 select id name type parent from table1 where type 1 union