Come altri commentatori hanno sottolineato, non si visualizza esattamente come si collegano persone e colori. Se si sta utilizzando una tabella di collegamento (person_id, color_id), non esiste alcun modo per risolvere questo problema in SQL standard poiché richiede un pivot o una tabella incrociata, che non fa parte dello standard SQL.
Se si desidera aggiungere la condizione che il numero di colori sia limitato e noto e il tempo di progettazione, è possibile elaborare una soluzione utilizzando un join per ciascun colore e le funzioni CASE o IF in SQL. Ma non sarebbe elegante e, inoltre, non mi fiderei di quella condizione per rimanere vera a lungo.
Se riesci a trovare un modo diverso di memorizzare le informazioni sul collegamento dei colori, potresti avere più opzioni per produrre l'output desiderato, ma una diversa tecnica di memorizzazione implica un certo grado di denormalizzazione del database che potrebbe causare altre difficoltà.
In caso contrario, sarà necessario farlo in una stored procedure o codice dell'applicazione.
fonte
2010-03-12 15:38:21
Quale database? –
-1: è necessario dirci quale DBMS si sta utilizzando. –
Sto utilizzando ADO per connettersi a un DB Visual FoxPro. – Harley