Chcę usunąć stosując INNER JOIN
w SQL Server 2008 .
Ale pojawia się ten błąd:
Msg 156, poziom 15, stan 1, wiersz 15
Niepoprawna składnia w pobliżu słowa kluczowego „INNER”.
Mój kod:
DELETE FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
sql
sql-server
sql-server-2008
inner-join
sql-delete
nettoon493
źródło
źródło
DELETE
ze złączeniemOdpowiedzi:
Musisz określić, z której tabeli usuwasz, oto wersja z aliasem:
źródło
Wystarczy dodać nazwę tabeli pomiędzy
DELETE
iFROM
skąd chcesz usunąć rekordy, ponieważ musimy określić tabelę do usunięcia. Usuń takżeORDER BY
klauzulę, ponieważ nie ma nic do zamówienia podczas usuwania rekordów.Twoje ostatnie zapytanie powinno wyglądać następująco:
źródło
DELETE Employee
spowoduje usunięcie z tabeli pracownika zamiastWorkRecord2
tabeli.Może to być pomocne dla Ciebie -
Lub spróbuj tego -
źródło
Spróbuj tego:
źródło
Powinno być:
źródło
Ta wersja powinna działać
źródło
W SQL Server Management Studio mogę łatwo utworzyć
SELECT
zapytanie.Mogę go wykonać, a wszystkie moje kontakty zostaną wyświetlone.
Teraz zmień
SELECT
DoDELETE
:Wszystkie rekordy, które widziałeś w
SELECT
wyciągu, zostaną usunięte.Możesz nawet stworzyć trudniejsze połączenie wewnętrzne za pomocą tej samej procedury, na przykład:
źródło
źródło
Spróbuj tego zapytania:
źródło
Innym sposobem używania
CTE
.Uwaga: nie możemy używać
JOIN
wewnątrz,CTE
kiedy chceszdelete
.źródło
Jest to proste zapytanie, aby usunąć rekordy z dwóch tabel jednocześnie.
źródło
Spróbuj tego, to może pomóc
źródło
Oto moja wersja SQL Server
źródło
Nie określasz tabel dla
Company
iDate
możesz to naprawić.Standardowy SQL przy użyciu
MERGE
:Odpowiedź @Devart jest również Standard SQL, choć niekompletna, powinna wyglądać mniej więcej tak:
Ważną rzeczą, na którą należy zwrócić uwagę w związku z powyższym, jest jasne, że usunięcie jest wymierzone w pojedynczą tabelę, co wymuszono w drugim przykładzie, wymagając skalarnego podzapytania.
Dla mnie różne zastrzeżone odpowiedzi składniowe są trudniejsze do odczytania i zrozumienia. Myślę, że sposób myślenia najlepiej opisać w odpowiedzi eilering @frans, tzn. Osoba pisząca kod niekoniecznie dba o osobę, która będzie czytać i utrzymywać kod.
źródło
Oto, czego obecnie używam do usuwania, a nawet aktualizacji:
źródło