Salve a tutti,
vorrei ricevere un parere da voi. Vorrei sapere se la query lanciata è "sulla strada giusta" oppure se ci sono modi migliori per ottenere lo stesso risultato.
Dunque ho delle tabelle strutturate in questo modo:
#Staff_persona
- id_persona (pk)
- nome
- cognome
# Staff_email
- id_persona (fk)
- email
# Staff_telefono
- id_persona (fk)
- telefono
# Staff_ruolo
- id_ruolo (pk)
- ruolo
# Rel_staff_pr (che sta per tabella di relazione tra le persone e il ruolo investito)
- id_persona (fk)
- id_ruolo (fk)
La query che lancio per ottenere tutti i nomi e cognomi con gli indirizzi email e i numeri di telefono E il ruolo rivestito da essi è la seguente:
codice:
SELECT p.nome, p.cognome, e.email, t.telefono, r.ruolo
FROM staff_persona AS p
LEFT JOIN staff_email AS e ON p.id_persona = e.id_persona
LEFT JOIN staff_telefono AS t ON p.id_persona = t.id_persona
LEFT JOIN rel_staff_pr AS pr ON p.id_persona = pr.id_persona
LEFT JOIN staff_ruolo AS r ON r.id_ruolo = pr.id_ruolo
La seguente query mi restituisce i risultati proprio come voglio io. In caso qualcuno non ha un indirizzo email, oppure un numero di telefono, oppure non riveste alcun ruolo, tali valori saranno NULL(i).
La domanda è: ci sono modi migliori per formulare la query ed ottenere gli stessi risultati oppure questo è di già il miglior metodo?
Grazie in anticipo.