- Home
- Categorie
- Coding e Sistemistica
- Coding
- Problemi ordinamento dati in una query
-
Problemi ordinamento dati in una query
Ciao,
mi sono appena iscritta perché ho bisogno del vostro aiuto.
Ho cercato nel vostro forum qualche indicazione per il mio problema, ma non sono riuscita a trovare niente che mi aiutasse
quindi ecco il mio problemaho due tabelle
tabella** fornitori** con campo *id_forn *(int) e campo nome (varchar)
tabella spese con campo id_spe (int) , id_forn_spe (int) e spesa (float)dove id_forn_spe della tabella spese corrisponde a id_forn della tabella fornitori
ho una query che elenca tutte le spese (SELECT * from spese)
voglio modificarla per fare in modo che le spese vengano ordinate per il nome fornitore in ordine alfabeticola query SELECT * FROM spese join fornitori on fornitori.id_forn = spese.id_forn_spe ORDER BY nome
funziona correttamenteil mio problema però è che nella tabella spese il fornitore non è un campo obbligatorio,
quindi ci sono delle righe dove il campo id_forn_spe è vuoto
se faccio la query precedente queste righe senza fornitore non vengono visualizzate (giustamente)come faccio a visualizzare tutte le spese, comprese le righe che non hanno il fornitore e le altre con i nomi dei fornitori ordinati?
ho provato ad utilizzare la** UNION** con una query SELECT * FROM spese WHERE ((spese.id_forn_spe='')
ma se ho capito bene non funziona perché la prima select ha una join e quindi le due select non hanno le stesse colonneSpero di essere stata chiara nell'esposizione del problema
e spero sappiate essermi d'aiutointanto, grazie mille
-
Ciao grillo70 e benvenuta nel ForumGT
il tuo problema è sulla JOIN: non devi usare una JOIN ma una LEFT JOIN che, di base, inserisce tutte le righe della tabella a sinistra.Prova a dare un'occhiata a questi schemi
http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
-
Grazie PietroR
per il soluzione e il link agli schemi che sono davvero esplicativi
Sono riuscita a risolveregrazie mille
buon fine settimana