国老师 发表于 2023-9-14 12:31:25

执行同一表中多列内部联系

我有一个场景,我有点坚持。假设我有一个关于颜色的调查,一个用于颜色数据,另一个用于人们的答案。
tbColors
color_code ,color_name   blue   2   green          yellow'   4   ,'red'tb答案
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对于显示,我想写一个答案表SELECT,但要使用tbColors中的color_name列。
我知道做到这一点的最愚蠢方法:在FROM部分中命名tbColors三次,每列替换使用不同的别名。
一种非愚蠢的方式看起来怎么样?
                                                               
    解决方案:                                                               
                                                                这似乎是一条路:
SELECTA.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_nameFROM tbAnswers AS AINNER JOIN tbColors AS C1ON A.favorite_color = C1.color_codeINNER JOIN tbColors AS C2ON A.least_favorite_color = C2.color_codeINNER JOIN tbColors AS C3ON A.color_im_allergic_to = C3.color_code我敢说这是一个非常标准的查询,而不是愚蠢。这也假设所有列都将有效。否则,将是所有的INNER JOIN替换为LEFT JOIN
页: [1]
查看完整版本: 执行同一表中多列内部联系