【发布时间】:2015-01-22 19:44:58
【问题描述】:
我正在尝试选择由两列中的值标识的表中的行。这些值可在另一个表中找到。一个例子应该会有所帮助:
表1
A | B | C
101 1 x
102 1 o
103 1 o
SELECT A, B FROM Table1 where Table1.C = 'o'
返回:
A | B
102 1
103 1
我想删除 Table2 中 A 和 B 与 Table1 上的查询返回的行匹配的行。
表2
A | B | D
101 1 Not deleted
102 1 Deleted
103 1 Deleted
变成:
A | B | D
101 1 Not selected
第一个选择有效,但我看不到从那里去哪里。我目前有以下内容,但它抛出了一个错误,我不清楚我应该做什么。欢迎使用教程,因为我是 SQL 新手。
DELETE Table2
where A, B in
(SELECT A, B FROM Table1
where Table1.C = 'o')
【问题讨论】:
-
您的第一个查询只会返回第 102 行。请确认您的输入和输出数据好吗?
-
抱歉,错字现已修正。它应该返回 102 和 103 行。
标签: sql sql-server