125 messaggi dal 22 agosto 2001
Ciao a tutti,

ho un problema che non riesco a risolvere.
Ho una tabella di prodotti (id, nome, marca, prezzo, ecc..) e il mio obiettivo è visualizzare una serie di prodotti "simili" sotto la scheda di un prodotto singolo.

Per fare un esempio:
Visualizzo la scheda di un televisore Sony e sotto questa scheda vorrei elencare, nell'ordine, tutti i prodotti "Sony" e tutti i prodotti "televisori".

La prima soluzione è fare una semplice select:

SELECT * FORM DB WHERE marca = 'Sony' OR tipo='televisori'


pero' non ho modo di ordinare i record con prima quelli con marca sony e poi quelli con tipo televisori (questi due valori sono ovviamente variabli per cui non posso predefinire un ordine nel db). Forse condizionando una clausola "order by", ma come?

Una soluzione l'avrei trovata con una union, facendo:

SELECT *,0 AS ordine FORM DB WHERE marca = 'Sony'

UNION

SELECT *,1 AS ordine FORM DB WHERE tipo='televisori'



ordinando poi la UNION con il campo aggiunto ordine. Ma in questo caso si creano dei duplicati, poiche' l'introduzione del campo ordine rende diversi i record originariamente uguali.

Qualcuno ha idea di come potrei risolvere il problema?

grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.