Изглежда това е правилният начин:
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
Вместо „глупаво“, бих се осмелил да кажа, че това е доста стандартна заявка. Това също така предполага, че всички колони ще имат валидна стойност. В противен случай заменете всички INNER JOIN с LEFT JOIN