2012-12-19 3 views
2

다음 쿼리가 있습니다.내부 조인이있는 SQL 테이블에서 삭제

SELECT T2.* FROM Schema.Table1 T1 INNER JOIN 
Schema.Table2 T2 ON T1.ColumnName = T2.ColumnName 
WHERE T1.SomeOtherColumn = 123456 

나는 쿼리 위 (내부 기반으로 일치 출력이 가입 한 표 2에서 모든 및 그 절. 나는 다음과 같은 있지만 작동하지 않습니다.

DELETE Schema.T2.* FROM Schema.Table2 T2 INNER JOIN 
Schema.Table1 T1 ON T1.ColumnName = T2.ColumnName 
WHERE T1.SomeOtherColumn = 123456 

이 도와주세요 시도에서 모든 것을 삭제하려면 !

편집 :..

가 너희들을 감사 TIL 두 번 사용할 수 있습니다 FROM 하위 쿼리 형식으로 사용하지 않고 :

답변

9
DELETE FROM T2 
FROM Schema.Table2 T2 
JOIN Schema.Table1 T1 
ON  T1.ColumnName = T2.ColumnName 
WHERE T1.SomeOtherColumn = 123456 
또한, 하위 쿼리 단일 테이블에서 선택하는 쿼리를 재 작업 등의 수
3

DELETE 
FROM Table2 
WHERE Table2.ColumnName = (SELECT Table1.ColumnName 
          FROM Table1 
          WHERE Table1.SomeOtherColumn = 123456) 

(그렇지 않으면 던질 것이다, 서브 쿼리가 단일 값을 반환하는 경우에만 동작합니다 오류)

관련 문제