unir tablas tabla relacionadas multitablas misma hacer ejemplos diferentes consultas consulta complejas como sql oracle join inner-join

sql - tablas - Realizar unión interna para columnas múltiples en la misma tabla



unir dos consultas sql misma tabla (1)

Esto parece ser el camino a seguir:

SELECT A.answer_id ,C1.color_name AS favorite_color_name ,C2.color_name AS least_favorite_color_name ,C3.color_name AS color_im_allergic_to_name FROM tbAnswers AS A INNER JOIN tbColors AS C1 ON A.favorite_color = C1.color_code INNER JOIN tbColors AS C2 ON A.least_favorite_color = C2.color_code INNER JOIN tbColors AS C3 ON A.color_im_allergic_to = C3.color_code

En lugar de "estúpido", me atrevería a decir que esta es una consulta bastante estándar. Esto también supone que todas las columnas tendrán un valor válido. De lo contrario, reemplace todas las UNIONES INTERIORES con UNIONES IZQUIERDAS

Tengo un escenario en el que estoy un poco atascado. Digamos que tengo una encuesta sobre colores, y tengo una tabla para los datos de color y otra para las respuestas de las personas.

tbColors

color_code , color_name 1 , ''blue'' 2 , ''green'' 3 , ''yellow'' 4 , ''red''

tbAnswers

answer_id , favorite_color , least_favorite_color , color_im_allergic_to 1 , 1 , 2 3 2 , 3 , 1 4 3 , 1 , 1 2 4 , 2 , 3 4

Para la visualización, quiero escribir un SELECCIONAR que presente la tabla de respuestas pero usando la columna color_name de tbColors.

Entiendo la manera "más estúpida" de hacerlo: nombrar tbColors tres veces en la sección FROM, usando un alias diferente para cada columna para reemplazar.

¿Cómo se vería una forma no estúpida?