首页 > 解决方案 > 如何删除一个表中 ID 与字段为特定值的另一表行匹配的行?

问题描述

我承认标题问题很复杂;这是情况。

我有两张桌子:

USERS Table
ID 姓名 地位
1 莫妮卡 一个
2 罗斯 一个
3 菲比
4 钱德勒 一个
5 雷切尔
6 乔伊 一个
PERMISSIONS Table
用户身份 许可ID
1 32
1 51
4 12
6 2
3 5
5 22
2 18

我想要的是一种从该PERMISSIONS用户STATUS为“T”的表中删除所有行的方法,但我该怎么做呢?

我试过这个:

DELETE FROM permissions
WHERE user_id IN (
    SELECT id FROM users
    WHERE status = 'T'
);

但是,SQL Server 给出了这个错误:Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

标签: sql-server

解决方案


尝试 应用join permissionsuserwhere status = 'T'

例子:

DELETE p
FROM permissions p
INNER JOIN users u
  ON p.user_id=u.id
WHERE u.status = 'T'

推荐阅读