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