Я использую SQL Server 2012 и имею следующий запрос. Давайте назовем этот запрос, A.SQL Server. Удалить из Select
SELECT a.col, a.fk
FROM Table1 a
INNER JOIN (
select b.col
from Table1 b
group by b.col
having count(*) > 1)
b on b.col = a.col
Я хочу удалить только строки, возвращаемые из запроса A, в частности, те строки, которые соответствуют возвращаемый седловины И Fk
Я имею в виду сделать следующее, но это будет только удалите строки, соответствующие столбцу.
delete from Table1
where col in (
SELECT a.col
FROM Table1 a
INNER JOIN (
select b.col
from Table1 b
group by b.col
having count(*) > 1)
b on b.col = a.col)
)
Определяется ли 'pk' как первичный ключ' Table1'? Если совпадение 'pk' совпадает с совпадением' (pk, fk) '. –
Нет, pk не является основным ключом таблицы1. Я буду редактировать имена столбцов, так что это не путает – user2769810
Все еще запутано, так как 'fk' не используется в фильтре первого запроса. Для любого значения 'col', если оно существует несколько раз в' Table1', каждое значение будет отображаться в первом запросе, независимо от 'fk'. –