Buongiorno a tutti,
Sto facendo una maschera di ricerca che dà la possibilità di incrociare più dati tra diverse tabelle. La principale di queste tabelle è "dipendenti" che ha una chiave "ID_dipendente" mentre le altre si agganciano a questa tramite il campo omonimo ID_dipendente. La query è la seguente:
tabelle interessate dalla query: dipendenti, uffici, articolazioni, dipendente_dati_personali, dipendente_familiari
Il contenuto dei campi di ricerca viene inserito nelle variabili ($) tramite PHP. In pratica lasciando tutti i campi vuoti dovrebbe comparirmi l'elenco di tutti i dipendenti. Così è finche non inserisco nel WHERE la ricerca dei campi relativi alla tabella dipendente_familiari. Anche se i campi sono vuoti mi compaiono solo i dipendenti che hanno dei familiari inseriti in anagrafica. Con la LEFT JOIN non dovrebbe cmq trovare tutti i dipendenti a prescindere che abbiano un familiare? Non capisco dove sbaglio.
Sto facendo una maschera di ricerca che dà la possibilità di incrociare più dati tra diverse tabelle. La principale di queste tabelle è "dipendenti" che ha una chiave "ID_dipendente" mentre le altre si agganciano a questa tramite il campo omonimo ID_dipendente. La query è la seguente:
PHP:
SELECT DISTINCT matricola, dipendenti.ID_dipendente, nome_completo, nome_articolazione, nome_ufficio, dipendenti.ufficio FROM dipendenti
LEFT JOIN uffici ON ufficio=ID_ufficio LEFT JOIN dipendente_dati_personali ON dipendenti.ID_dipendente=dipendente_dati_personali.ID_dipendente
LEFT JOIN dipendente_familiari ON dipendenti.ID_dipendente=dipendente_familiari.ID_dipendente
LEFT JOIN articolazioni ON dipendenti.articolazione=articolazioni.ID_articolazione
WHERE
matricola LIKE '%$matricola%' AND ....
AND luogo_nascita LIKE '%$luogo_nascita%' AND...
AND familiare_luogo_nascita LIKE '%$luogo_nascita%' AND...
Il contenuto dei campi di ricerca viene inserito nelle variabili ($) tramite PHP. In pratica lasciando tutti i campi vuoti dovrebbe comparirmi l'elenco di tutti i dipendenti. Così è finche non inserisco nel WHERE la ricerca dei campi relativi alla tabella dipendente_familiari. Anche se i campi sono vuoti mi compaiono solo i dipendenti che hanno dei familiari inseriti in anagrafica. Con la LEFT JOIN non dovrebbe cmq trovare tutti i dipendenti a prescindere che abbiano un familiare? Non capisco dove sbaglio.
Ultima modifica di un moderatore: