Filtrare risultati duplicati: come?

Ciao a tutti!

Ho un problema.

Ho tre tabelle in un db:

- notizie

- lookup (tabella di relazione)

- immagini

La tabella "lookup" contiene gli id_notizia e id_immagini, ed è utilizzata appunto per relazionare le altre 2 tabelle.

Attraverso una query, stampo a video le notizie e relative immagini allegate.

Il problema però è questo:

Quando una notizia ha più immagini allegate, la notizia mi viene replicata tante volte quanto il numero delle stesse immagini.  :(

Come poter risolvere questo problema?

p.s.

DISTINCT non funge nella query al db.

Grazie mille!

Luka

inviato 7 anni fa
Luca
Luca
1
X 0 X

da quello che leggo funziona benissimo....se non avessi le 2 righe che ti fanno vedere che la notizia ha 2 immagini come faresti ha sapere che ne ha 2? la distinct ovviamente non funziona perchè la notizia è la stessa ma la foto no! quindi le 2 righe non sono uguali e vengono visualizzate entrambe, questo almeno da quello che capisco

risposto 7 anni fa
claudiogbr
X 0 X

Confermo quanto detto da claudiogbr, non si tratta di duplicati ma del normale comportamento della JOIN. Devi essere tu in PHP a costruire una struttura dati (un array ad esempio) che contenga la lista delle notizie, senza duplicati, e per ciascuna di esse l'elenco delle immagini.

Questa strutturadati senza doppioni si costruisce durante la fetch dei risultati della query. Ad ogni lettura di n record devi capire se si tratta di una nuova notizia con la sua immagine oppure di una nuova immagine per una notizia già letta.

Se prevedi di avere delle notizie senza immagini dovrai eseguire una LEFT JOIN e dovrai aspettarti dei record con le colonne dell'immagine a NULL

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda