D4rkAng3l
16-01-2008, 10:07
Se ho 3 tabelle così fatte:
IMPIEGATO(IDimpiegato, nome, mansione, IDdipartimento)
COMPETENZE_IMPIEGATO(IDimpiegato, competenze)
DIPARTIMENTO(IDdipartimento, nome)
dove i campi in grassetto sono il campo identificatore della tabella.
Ho questa query che deve eliminare tutti gli impiegati che lavorano nel dipartimento avente nome "Finanza" e cancellare tutte le righe delle loro competenze.
In pratica devo eliminare delle righe dalle tabelle IMPIEGATO e COMPETENZE_IMPIEGATO.
La query che ho trovato sul libro è:
delete IMPIEGATO, COMPETENZE_IMPIEGATO
from IMPIEGATO, COMPETENZE_IMPIEGATO, DIPARTIMENTO
where IMPIEGATO.IDimpiegato = COMPETENZE_IMPIEGATO.IDimpiegato
and IMPIEGATO.IDdipartimento = DIPARTIMENTO.IDdipartimento
and dipartimento.nome = 'Finanza';
Mi sfugge qualcosa su come funziona questo mostro...
allora io elimino solo dalle tabelle che seguono listruzione delete quindi cancello righe solo da IMPIEGATO e COMPETENZE_IMPIEGATO.
Le tabelle elencate dopo l'istruzione from vengono invece usate solo per cercare dati e quindi effettuare i join (a meno che non siano anche successori di deete).
Ora non miè chiaro cosa faccio con i where...è come se gli dicessi: elimina dalle tabelle IMPIEGATO e COMPETENZE_IMPIEGATO dove:
IMPIEGATO.IDimpiegato = COMPETENZE_IMPIEGATO.IDimpiegato questo perchè devo eliminare uno stesso utente con uno stesso id da entrambe le tabelle? non capisco mi sfugge...helpme...
Grazie
Andrea
IMPIEGATO(IDimpiegato, nome, mansione, IDdipartimento)
COMPETENZE_IMPIEGATO(IDimpiegato, competenze)
DIPARTIMENTO(IDdipartimento, nome)
dove i campi in grassetto sono il campo identificatore della tabella.
Ho questa query che deve eliminare tutti gli impiegati che lavorano nel dipartimento avente nome "Finanza" e cancellare tutte le righe delle loro competenze.
In pratica devo eliminare delle righe dalle tabelle IMPIEGATO e COMPETENZE_IMPIEGATO.
La query che ho trovato sul libro è:
delete IMPIEGATO, COMPETENZE_IMPIEGATO
from IMPIEGATO, COMPETENZE_IMPIEGATO, DIPARTIMENTO
where IMPIEGATO.IDimpiegato = COMPETENZE_IMPIEGATO.IDimpiegato
and IMPIEGATO.IDdipartimento = DIPARTIMENTO.IDdipartimento
and dipartimento.nome = 'Finanza';
Mi sfugge qualcosa su come funziona questo mostro...
allora io elimino solo dalle tabelle che seguono listruzione delete quindi cancello righe solo da IMPIEGATO e COMPETENZE_IMPIEGATO.
Le tabelle elencate dopo l'istruzione from vengono invece usate solo per cercare dati e quindi effettuare i join (a meno che non siano anche successori di deete).
Ora non miè chiaro cosa faccio con i where...è come se gli dicessi: elimina dalle tabelle IMPIEGATO e COMPETENZE_IMPIEGATO dove:
IMPIEGATO.IDimpiegato = COMPETENZE_IMPIEGATO.IDimpiegato questo perchè devo eliminare uno stesso utente con uno stesso id da entrambe le tabelle? non capisco mi sfugge...helpme...
Grazie
Andrea