Salve a tutti, vi faccio un esempio per farvi capire il problema
supponete di avere 2 tabelle, una che si chiama ordini, una invece che si chiama prodotti_ordine
la tabella ordine ha i campi:
Id,Nome Cliente,Data Consegna
popolo qualche record:
1,pinco pallino,12/04/1999
2,beppe rossi,13/02/2012
3,viola rosi,1/07/2011
4,maurizio ganzo,19/03/2010
la tabella prodotti_ordine ha i campi:
Id (chiave primaria)
IdOrdine (relazione con la tabella ordini)
CodiceProdotto
Qta
popolo qualche record:
1,1,mocassini,22
2,2,ciabatte,40
3,3,ballerine,57
4,3,stivali,36
5,4,pantofole,44
un classico esempio di relazione uno a molti.
supponendo che io voglia visualizzare gli ordini con all'interno il codice "pantofole"
SELECT O.* FROM ordini O , prodotti_ordine PO where PO.IdOrdine = O.Id and PO.Codice like 'stivali';
ed il risultato è il seguente:
4,maurizio ganzo,19/03/2010
e questo mi va più che bene.
se però tolgo il like dalla query mi si duplicano i record...
SELECT O.* FROM ordini O , prodotti_ordine PO where PO.IdOrdine = O.Id
il risultato è i lseguente:
1,pinco pallino,12/04/1999
2,beppe rossi,13/02/2012
3,viola rosi,1/07/2011
3,viola rosi,1/07/2011
4,maurizio ganzo,19/03/2010
come potete vedere l'id 3 viene ripetuto 2 volte.
Come faccio a fare una query che non mi ripeta i record ma mi consenta ugualmente la ricerca?

Rispondi quotando