从具有内部联接的表中删除记录

时间:2017-04-04 09:11:35

标签: sql

我试图根据另一个表中的记录删除一个表中的记录。我正在使用内部联接。我使用的代码如下;

 delete * from assets_l a, laptop_tracker b
 where a.serialno=b.serialno;

我正在尝试将assets_l表中具有匹配序列号的所有记录删除到笔记本电脑跟踪器表中的记录。有些帮助吗?

1 个答案:

答案 0 :(得分:1)

是什么让你加入的想法?您想从assets_l中删除laptop_tracker中存在匹配项。你几乎可以将这个单词翻译成SQL:

delete from assets_l
where exists (select * from laptop_tracker lt where lt.serialno = assets_l.serialno);

换句话说:从assets_l中删除序列号也在laptop_tracker中的内容:

delete from assets_l
where serialno in (select serialno from laptop_tracker);

为了简单起见,我会选择第二个语句(带有IN子句)。这是标准SQL,应该适用于每个RDBMS。