Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找删除违规记录的SQL连接示例(行删除行清理SQL连接)_Sql_Sql Server_Left Join_Inner Join_Record - Fatal编程技术网

查找删除违规记录的SQL连接示例(行删除行清理SQL连接)

查找删除违规记录的SQL连接示例(行删除行清理SQL连接),sql,sql-server,left-join,inner-join,record,Sql,Sql Server,Left Join,Inner Join,Record,所讨论的SQL引擎是SSMS(SQLServerManagementStudio V18.5),尽管我怀疑该版本是否与此查询相关 我有一个表a,它是一个信息源。还有一个表B,它是一个复杂查询X的结果日志,其中包含大约六个联接。工具处理该查询的输出以在外部工具中完成工作,然后将这些工作细节记录到表C中 因此,我们: 表A:数据源 Complex-Query-X:产生工作项列表的多连接查询(表A是其众多来源之一) 表B:Complex-Query-X随时间的输出结果列表 表C:Complex-Qu

所讨论的SQL引擎是SSMS(SQLServerManagementStudio V18.5),尽管我怀疑该版本是否与此查询相关

我有一个表a,它是一个信息源。还有一个表B,它是一个复杂查询X的结果日志,其中包含大约六个联接。工具处理该查询的输出以在外部工具中完成工作,然后将这些工作细节记录到表C中

因此,我们:

  • 表A:数据源
  • Complex-Query-X:产生工作项列表的多连接查询(表A是其众多来源之一)
  • 表B:Complex-Query-X随时间的输出结果列表
  • 表C:Complex-Query-X中已执行工作的工作项列表、已完成工作、工作结果等
我试图创建的查询的目标是,如果行已经被处理过(意味着它们出现在表C中),则从上面的复杂查询中删除这些行。此时的困难目标是减少工作量,因为有数十万条记录正在处理,而我们只想处理一次记录,因此使用结果集限制待办工作列表是一个明显的目标

我对SQL并不陌生,但我以前从未尝试过使用联接删除记录。大量的在线参考涉及SQL连接,以及它们的方式和原因,但没有一个详细介绍如何以符合我们目标的方式删除数据


我还想到,我年纪大了,可能缺少了一些明显的东西,我应该只向我的大连接查询添加数据,因此我在这里进行查询(例如,这样就不需要删除)。这就是我犹豫的地方吗?

答案是一系列选项,我从中选择了第三个选项:

  • 限制原始查询,使“要删除的数据”在核心查询运行后不存在——考虑到数据的组合方式(数十万行,大约七(7)个源),该选项有点复杂,但至少是可以想象的
  • 查询联接结构中的一个左联接条件,它在不匹配的行上强制使用空键标识符(使使用该查询的工具很容易忽略它们)
  • 自动删除目标行的where子句——这是最简单的,并且至少在与其他两个查询选项的分析中表现相对较好——因此,如上所述,这实际上是我们选择的方向,还有一个左连接,原因在这里将不详细说明
我个人感谢大家的意见和批评,就像他们所做的那样。我个人很抱歉没有对实际来源和数据样本的确切情况表示更多的歉意,雇用我的机构对这类事情相当保密,我太忙/懒得在我有其他选择的时候捏造足够的例子


不管怎么说,这类问题实际上更具学术性,不需要硬性的例子,我的意思是,如果我站在读者的立场上,如果我有选择的话,我自己会更喜欢一个例子。事实上,我确实为最终培养我最终选择的政党制定了一个快速路线模式,但即使是这样,我也不愿意在公共环境中发布。

你能添加一些示例数据吗?你有没有考虑过在WHERE子句中使用NOT EXISTS({MATCHINE CONDICTION in Table-C})呢?很抱歉,我不被允许。谢谢你的反馈,我们的最终选择和最终选择。请参阅了解如何使用@x通知一位非唯一非海报评论者x回复评论者。