SCENARIO :
Creazione di un database Rubrica.
Ogni record (persona) di tale tabella deve poter essere associata ad una tipologia (es. amico, collega, parente etc).
Ogni record (persona) può appartenere a più di una tipologia (es. Amilcare Rossi è sia amico che collega mentre Maria Bianchi è solo una cliente)
La tipologia di appartenenza (amico, cliente, etc) deve essere scalabile e dev’essere possibile aggiungere nuove tipologie.
TABELLE :
TABELLA TPersone (PK_Persone, Nome, Cognome, Cell) Contiene l’anagrafica della persona
TABELLA TAssociazionePersonaTipologia (PK_Associazione, FK_Persona, FK_Tipologia)
TABELLA TTipologia (PK_Tipologia, Tipo) contiene le tipologie (es. amico, parente, collega etc)
La tabella TAssociazionePersonaTipologia relaziona in modo flessibile la tabella TPersona e TTipologia in quanto la sua chiave esterna FK_Persona punta in modo univoco ad una persona e la sua chiave esterna FK_Tipologia punta ad una tipologia da associare a quella persona.
L’utilizzo di una tabella di associazione permette di creare più associazioni per ogni singola persona.
PROBLEMA :
creare una query SQL per interrogare la base dati ed ottenere il cognome delle persone associate ad una tipologia (es. ottenere tutti i cognomi delle persone classificate come “collega”). Devo utilizzare una INNER JOIN nidificata?
Ho provato questo comando ma mi da errore evidenzioando la clausola "WHERE" :
SELECT *
FROM TPersone
INNER JOIN
(TAssociazioneTipologia INNER JOIN TTipologia ON TAssociazioneTipologia.FK_Tipologia = TTipologia.PK_Tipologia WHERE TTipologia.Tipologia = 'amico')
ON TPersone.PK_Persone = TAssociazioneTipologia.FK_Persona;
Qualcuno di voi puo' illuminarmi? GRAZIE!!!

Rispondi quotando
