[sql] SQL Server에서 INNER JOIN을 사용하여 삭제하는 방법?

SQL Server 2008INNER JOIN 에서 를 사용하여 삭제하고 싶습니다 .

하지만이 오류가 발생합니다.

메시지 156, 수준 15, 상태 1, 줄 15
키워드 ‘INNER’근처의 구문이 잘못되었습니다.

내 코드 :

DELETE FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'



답변

삭제할 테이블을 지정해야합니다. 다음은 별칭이있는 버전입니다.

DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
  ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'


답변

삭제할 테이블을 지정해야하므로 레코드를 삭제하려는 위치 DELETE와 그 사이에 테이블 이름을 추가하십시오 FROM. 또한 제거ORDER BY 레코드를 삭제하는 동안 주문할 항목이 없으므로 절을 .

따라서 최종 쿼리는 다음과 같아야합니다.

    DELETE WorkRecord2
      FROM WorkRecord2
INNER JOIN Employee
        ON EmployeeRun=EmployeeNo
     WHERE Company = '1'
       AND Date = '2013-05-06';


답변

가능하면 도움이 될 것입니다.

DELETE FROM dbo.WorkRecord2
WHERE EmployeeRun IN (
    SELECT e.EmployeeNo
    FROM dbo.Employee e
    WHERE ...
)

아니면 이것을 시도하십시오-

DELETE FROM dbo.WorkRecord2
WHERE EXISTS(
    SELECT 1
    FROM dbo.Employee e
    WHERE EmployeeRun = e.EmployeeNo
        AND ....
)


답변

이 시도:

DELETE FROM WorkRecord2
       FROM Employee
Where EmployeeRun=EmployeeNo
      And Company = '1'
      AND Date = '2013-05-06'


답변

그것은해야한다:

DELETE zpost
FROM zpost
INNER JOIN zcomment ON (zpost.zpostid = zcomment.zpostid)
WHERE zcomment.icomment = "first"       


답변

이 버전은 작동합니다

DELETE WorkRecord2
FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
Where Company = '1' AND Date = '2013-05-06'


답변

SQL Server Management Studio에서 SELECT쿼리를 쉽게 만들 수 있습니다 .

SELECT Contact.Naam_Contactpersoon, Bedrijf.BedrijfsNaam, Bedrijf.Adres, Bedrijf.Postcode
FROM Contact
INNER JOIN Bedrijf ON Bedrijf.IDBedrijf = Contact.IDbedrijf

실행할 수 있고 모든 연락처가 표시됩니다.

이제 변경 SELECTA를 DELETE:

DELETE Contact
FROM Contact
INNER JOIN Bedrijf ON Bedrijf.IDBedrijf = Contact.IDbedrijf

당신이 본 모든 기록 SELECT명세서 삭제됩니다.

동일한 절차를 사용하여 더 어려운 내부 조인을 만들 수도 있습니다 (예 :

DELETE FROM Contact
INNER JOIN Bedrijf ON Bedrijf.IDBedrijf = Contact.IDbedrijf
INNER JOIN LoginBedrijf ON Bedrijf.IDLoginBedrijf = LoginBedrijf.IDLoginBedrijf