代码之家  ›  专栏  ›  技术社区  ›  Zephyr

如何删除一个表中ID与另一个表中字段为某个值的行匹配的行?

  •  0
  • Zephyr  · 技术社区  · 5 年前

    我承认题目很复杂,情况是这样的。

    我有两张桌子:

    USERS Table
    
    身份证件 名称 地位
    莫妮卡 A
    2 罗斯
    菲比
    4 钱德勒 A
    5 T型
    6 乔伊
    PERMISSIONS Table
    
    用户id 权限\u id
    1
    1 51
    4
    6 2
    5
    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.

    1 回复  |  直到 5 年前
        1
  •  1
  •   jcHernande2    5 年前

    尝试应用 join permissions user where status = 'T'

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