数据库操作之同时一条sql删除两个表格中的数据

先骂一顿csdn吧,虽然最开始是在csdn上写的博客,而且从csdn上查到了很多资料,但是csdn使用实在是差劲。账号管理莫名其妙,有的时候把我的id和qq号搞混了;有时候经常发不了博文,无法点击。算了,不说了。

不记得之前是解决什么问题了,用到了很复杂的一条语句,在这大概描述下。
问题:一条sql语句同时删除两个表中相同记录
1.精简版的
delete a,b from table_a a,table_b b where a.id=b.id;
2.复杂版的
delete a,b from table_a a,table_b b where a.id in(select c.id from (select * from table_a a where a.id in (select b.id from table_b b group by b.id having count(*) > 0)) c);
上述两种结果是一样的。
第二种虽然复杂,但是有些场合是可以使用的。

此外还有触发器版的,

create trigger tr_name on table1
for delete
as
delete from table2 where id in (select id from deleted)

然后删除
delete table1 where id条件。挺精巧的,可以仔细理解下。

转载于:https://my.oschina.net/u/3152471/blog/848083

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果您的问题是关于如何计算PostgreSQL数据库两列数据的差异,可以使用以下SQL查询语句: ``` SELECT column1 - column2 AS difference FROM your_table; ``` 其,`column1`和`column2`是您要比较的两列数据,`your_table`是包含这两列数据名。这将计算出这两列数据的差异并返回一个新的包含差异值的列。 如果您的问题是关于如何在PostgreSQL数据库删除两列数据之间的相同值,请使用以下SQL查询语句: ``` DELETE FROM your_table WHERE column1 = column2; ``` 其,`column1`和`column2`是您要比较的两列数据,`your_table`是包含这两列数据名。这将从删除那些这两列数据相同的行。 ### 回答2: 在Postgres数据库,我们可以使用算术运算符将两个列的数据进行相减操作。 假设我们有一个表格名为"students",其两个列"score1"和"score2",分别示某个学生的第一次和第二次考试成绩。 要计算这两个列的差值,可以使用以下SQL查询语句: SELECT score2 - score1 AS score_diff FROM students; 这条查询语句将计算两个列之间的差值,并将结果存储在名为"score_diff"的新列。 如果我们希望查询结果只包含差值大于10的记录,可以添加WHERE子句: SELECT score2 - score1 AS score_diff FROM students WHERE score2 - score1 > 10; 这将返回差值大于10的记录。 需要注意的是,如果两个数据类型不兼容,可能会导致相减操作失败。因此,在进行相减操作之前,应确保数据类型相匹配。 另外,如果我们希望将差值作为一个新的列添加到表格,可以使用ALTER TABLE语句: ALTER TABLE students ADD COLUMN score_diff INTEGER; 然后,可以使用UPDATE语句将差值添加到新列: UPDATE students SET score_diff = score2 - score1; 以上就是在Postgres数据库两个列的数据相减的方法。 ### 回答3: 在Postgres数据库,我们可以使用减法操作符(-)将两个列的数据进行相减。假设我们有一个名为table的,其包含两个列A和B,并且我们希望计算A列与B列的差值。 我们可以使用以下查询语句来实现: ``` SELECT A - B AS difference FROM table; ``` 这将返回一个名为difference的新列,其包含A列与B列的差值。我们可以根据需要更改SELECT语句的列名。 例如,如果A列的值为5,B列的值为3,则查询将返回结果为2的新列difference。我们可以通过在SELECT语句选择其他列来附加差值列。 需要注意的是,要进行减法操作两个列的数据类型必须兼容。如果它们的数据类型不同,可能需要进行适当的类型转换以确保减法操作的正确执行。 希望这个回答能解决你的问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值