Salve a tutti, io ho due entità, una prodotti e una vendite. in prodotti ci sono tutte le caratteristiche die prodotti(id,nome,descrizione,prezzo ecc). In vendite ci sono solo gli id dei prodotti.
Ora volevo implementare una ricerca che l'utente poteva fare o con il campo nome o prezzo o tutti e due in base alla sua scelta; in poche parole può ricercare un prodotto sia per il nome del prodotto , sia per il prezzo, o tutti e due , o solo uno , sta tutto nella sua scelta.
Ovviamente i dati li vado a prendere nella tabella vendita(perchè solo i prodotti in vendita può ricercare naturalmente), e tramite l'id del prodotto(che sta sia in prodotti che in vendita) facevo una join con la tabella prodotti.
Allora ho buttato giù questo codice SQL:
select prodotti.nome
from prodotti,vendita
where vendita.id_prodotti=prodotti.id_prodotti AND ( 'INPUT DEL NOME DA RICERCARE' <> '' AND prodotti.nome = 'INPUT DEL NOME DA RICERCARE')
UNION
select prodotti.prezzo
from prodotti,vendita
where vendita.id_prodotti=prodotti.id_prodotti AND ( 'INPUT DEL COSTO DEL PRODOTTO CHE SI VUOLE CERCARE' <> '' AND prodotti.prezzo = ''INPUT DEL COSTO DEL PRODOTTO CHE SI VUOLE CERCARE')
in pratica se l'utente inserisce qualcosa per l'input del nome(vuole ricercare per nome) allora lui fa il confronto dei vari record della tabella per il nome, se non inserisce nulla non confronta nulla
stessa cosa per il costo.
In questo modo, con la union, avviene l'unione di due tabelle, e quindi mi sarei aspettato due colonne,una per il nome e una per il costo, cosa che non è avvenuta
e inoltre se ad esempio ci sono due prodotti con lo stesso nome li raggruppa(es 4 prodotti chiamati "Penne", non mi visualizza quattro volte "Penne" ma una sola volta)
Mi potreste dare una mano nel risolvere questo problema, se magari non so conoscete qualche altro modo.
Vi ringrazio molto per la disponibilità e pazienza