2014-10-21 2 views
0

У меня есть запрос в Access, который я создаю на SQL Server. доступа:Удалить несколько столбцов в sql

DELETE DISTINCT * from [TableA] INNER JOIN TableB 
ON [TableA].[Column1]=[TableB].[column1] 
AND [TableA].[Column2]=[TableB].[column2] 

Я знаю, что я мог бы использовать

Delete from tableA where ID in (
Select * from from [TableA] INNER JOIN TableB 
ON [TableA].[Column1]=[TableB].[column1] 
AND [TableA].[Column2]=[TableB].[column2]) 

Но я получаю сообщение об ошибке сказав «только одно выражение может быть указан в списке выбора, когда подзапрос не вводится с EXISTS»

Моя цель - удалить отдельные записи из запроса Access, упомянутого в верхней части.

ответ

3

Вы хотите удалить строки в TableA, которые находятся в TableB, в соответствии с совпадением столбцов. Как насчет этого:

delete from tableA 
    where exists (select 1 
        from tableB 
        where tableA.Column1 = tableB.Column1 and tableA.column2 = tableB.column2 
       ); 

Это, кажется, намерение того, что вы пытаетесь сделать.

+0

Это отлично работает, но Выберите 1 дает каждую строку в запросе на выборку. Если мне нужно удалить только отдельные столбцы, как это сделано в результате запроса Access. Не могли бы вы рассказать об этом. – AllPigsREqual

+1

@ Lewan, как вы думаете, что «отличный» влияет на это? Вы хотите только удалять строки, которые встречаются один раз в 'TableB', или вы хотите только удалить строки, которые встречаются несколько раз в' TableB'? Обе вещи могут быть достигнуты, но не используются ключевое слово 'distinct'. – TheConstructor

1

В подзапроса и есть, чтобы выбрать столбец ID из соответствующей таблицы, которая является только столбец и нужно

DELETE a 
FROM tableA a 
     JOIN (SELECT DISTINCT Column1 ,column2 
      FROM tableA 
      WHERE EXISTS (SELECT 1 
          FROM tableB 
          WHERE tableA.Column1 = tableB.Column1 
            AND tableA.column2 = tableB.column2)) b 
     ON A.Column1 = B.Column1 
      AND A.column2 = B.column2 
+0

Pradeep Мне нужно удалить только (DELETE DISTINCT * из [TableA]). Любая идея, как отредактировать запрос, который вы предоставили соответственно. У меня нет идентификационной колонки в таблицах – AllPigsREqual

+0

@Lewan - Попробуйте сейчас. –

+0

Я сообщу вам, как только я проведу проверку записей, используя оба запроса – AllPigsREqual

Смежные вопросы