当前位置: 首页 > 知识库问答 >
问题:

如何使用join和where子句从表中删除?[副本]

潘翰藻
2023-03-14

下面是我到目前为止的代码,我想从Events表中删除select查询。

declare @maxsnapevent table (sita varchar(10), snap date)
insert into @maxsnapevent
select sita, max(snapshot_date) from ukrmc.dbo.strategy group by sita  
--select * from @maxsnapevent 


--need to delete everything that the following code gives  
select events.sita, events.date, events.event from ukrmc.dbo.events events
join @maxsnapevent max on max.sita = events.sita  
where date >= max.snap and events.sita != 'lcypd' and events.sita != 'lonza' 

策略表中的示例数据:

date          sita    Event              Snapshot_date
2018-01-01   London   Bank Holiday       2017-12-31 
2018-01-02   London                      2017-12-31 
2018-01-03   London                      2017-12-31
2018-01-04   London   Concert            2017-12-31
2018-01-02   London                      2018-01-01
2018-01-03   London                      2018-01-01
2018-01-04   London   Concert            2018-01-01
2018-01-01   Bham   Bank Holiday         2017-12-31 
2018-01-02   Bham                        2017-12-31 
2018-01-03   Bham                        2017-12-31
2018-01-04   Bham                        2017-12-31
2018-01-02   Bham                        2018-01-01
2018-01-03   Bham     Charity            2018-01-01
2018-01-04   Bham                        2018-01-01
date         sita    Event
2018-01-01   London  Bank Holiday
2018-01-02   London  
2018-01-03   London  
2018-01-04   London  Concert
2018-01-01   Bham    Bank Holiday
2018-01-02   Bham  
2018-01-03   Bham  
2018-01-04   Bham    Concert

正如您所看到的,每个快照都有几个带有几个日期的SITA。

共有1个答案

曾元忠
2023-03-14

你试过下一个代码吗?

delete events
from ukrmc.dbo.events events
join @maxsnapevent max on max.sita = events.sita  
where date >= max.snap and events.sita != 'lcypd' and events.sita != 'lonza'
 类似资料:
  • 我可以通过两种方式来实现这一点,使用where子句或join查询,在spark SQL中哪个更快?为什么?Where子句比较列添加、选择那些记录还是在列本身上联接,哪个更好?

  • 问题内容: 有什么区别,每个应该有什么区别? 如果我正确理解该理论,则查询优化器应该可以互换使用。 问题答案: 它们不是同一件事。 考虑以下查询: 和 第一个将返回订单及其订单号的行(如果有)。第二个将返回所有订单,但只有订单将具有与之关联的任何行。 使用,子句 实际上是 等效的。但是,仅仅因为它们在功能上相同而产生相同的结果,并不意味着这两种子句具有相同的语义。

  • 本文向大家介绍如何使用LEFT JOIN从MySQL表中删除重复值?,包括了如何使用LEFT JOIN从MySQL表中删除重复值?的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是从MySQL表中删除重复值的查询- 让我们再次检查表记录。 这将产生以下输出-

  • 问题内容: 为简单起见,假设所有相关字段均为。 你可以做: 要不然: 这两个工作方式是否相同? 问题答案: 是您应该使用的ANSI语法。 通常认为它更具可读性,尤其是当您连接许多表时。 只要有需要,也可以轻松地将其替换为。 该语法更关系模型为主。 两个表ed的结果是表的笛卡尔积,将对其应用过滤器,该过滤器仅选择连接列匹配的那些行。 使用语法更容易看到这一点。 以您的示例为例,在MySQL(通常在S

  • 问题内容: 在MySQL中,您可以使用语法 如何在SQL Server中执行相同的操作? 问题答案: 在此示例中,您可以利用“已删除”伪表。就像是: 显然,您可以执行“已删除输出”。如果您需要在第三张表上加入某些内容,也可以在第二个删除上使用。 作为附带说明,您也可以在插入语句上执行insert。,在更新语句上同时进行insert。和Deleted。*。 编辑: 另外,您是否考虑过在table1上

  • 问题内容: 我今天输入了错误的查询,但它仍然有效,并给出了预期的结果。我的意思是运行此查询: 但是我不小心跑了这个查询 (请注意,而不是最后一个子句中的) 并且都从用户ID返回了正确的员工ID。 这两个查询有什么区别?第二种形式是否仅联接满足条件的2个表的成员,而第一种形式将联接整个表,然后运行查询?一个效率比另一个效率高吗?还有其他我想念的东西吗? 谢谢! 问题答案: 对于这样的内部联接,它们在