ho 4 tabelle:
preferenza
------------
idpreferenza
periodo
disponibilita
-------------
iddisponibilita
periodo
offerta
-------------
idofferta
periodo
periodo
-------------
idperiodo
data
Lo scopo e' conrollare se posso cancellare un periodo da una determinata preferenza.
Se voglio fare questo, per rispettare i vincoli di integrita', devo controllare che il periodo non deve essere utilizzato dalle tabelle sorelle offerta e disponibilita e anche non deve esistere periodo utilizzato da qualcun altro nella tabella preferenza stessa.
Ho pensato di fare in questo modo:
controllare nella tabella stessa se esiste un duplicato:
SELECT D1.periodo FROM preferenza D1, preferenza D2
WHERE D1.idpreferenza='1'
AND D1.periodo=D2.periodo
Fatto questo se mi da qualche tupla in risposta faccio un count sulle tabelle offerta e disponibilita per vedere se quel periodo e' utilizzato nelle rispettive tabelle.
Se il count e' 0 allora posso finalmente cancellare il periodo dalla tabella periodo.
DOMANDA
secondo voi, esiste un'UNICA query che faccia il controllo completo (nella tabella stessa e nelle tabelle sorelle)?
Grazie
Ciao