Quero excluir usando INNER JOIN
no SQL Server 2008 .
Mas eu recebo este erro:
Mensagem 156, Nível 15, Estado 1, Linha 15
Sintaxe incorreta perto da palavra-chave 'INNER'.
Meu código:
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
fonte
fonte
DELETE
de uma junçãoRespostas:
Você precisa especificar de qual tabela você está excluindo, eis uma versão com um alias:
fonte
Basta adicionar o nome da tabela entre
DELETE
eFROM
de onde você deseja excluir registros, pois precisamos especificar a tabela a ser excluída. Remova também aORDER BY
cláusula, porque não há nada a pedir ao excluir registros.Portanto, sua consulta final deve ser assim:
fonte
DELETE Employee
excluirá da tabela de funcionários em vez deWorkRecord2
tabela.É possível que isso seja útil para você -
Ou tente isso -
fonte
Tente o seguinte:
fonte
Deveria ser:
fonte
Esta versão deve funcionar
fonte
No SQL Server Management Studio, posso criar facilmente uma
SELECT
consulta.Eu posso executá-lo e todos os meus contatos são mostrados.
Agora mude
SELECT
para aDELETE
:Todos os registros que você viu na
SELECT
declaração serão removidos.Você pode até criar uma junção interna mais difícil com o mesmo procedimento, por exemplo:
fonte
fonte
Tente esta consulta:
fonte
Outra maneira de usar
CTE
.Nota: Não podemos usar
JOIN
dentroCTE
quando você quiserdelete
.fonte
Esta é uma consulta simples para excluir os registros de duas tabelas por vez.
fonte
Tente isso, pode ajudar
fonte
Aqui está a minha versão do SQL Server
fonte
Você não especifica as tabelas para
Company
eDate
, talvez queira consertar isso.SQL padrão usando
MERGE
:A resposta do @Devart também é SQL padrão, embora incompleta, deve se parecer mais com isso:
O importante a ser observado sobre o exposto acima é que a exclusão está direcionada a uma única tabela, conforme aplicado no segundo exemplo, exigindo uma subconsulta escalar.
Para mim, as várias respostas de sintaxe proprietárias são mais difíceis de ler e entender. Eu acho que a mentalidade para é melhor descrita na resposta por @frans eilering, ou seja, a pessoa que escreve o código não se importa necessariamente com a pessoa que lerá e manterá o código.
fonte
Aqui está o que atualmente uso para excluir ou mesmo atualizar:
fonte