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!!!
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!!!