17回答

0收藏

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

技术问答 技术问答 496 人阅读 | 17 人回复 | 2022-03-03

我有一个场景,我有点坚持。假设我有一个关于颜色的调查,一个用于颜色数据,另一个用于人们的答案。) ~0 [/ l! z0 h7 @, R5 l% @7 L
tbColors
+ O' S( P0 u2 L2 A. Y9 d) B; @color_code ,color_name   blue     2     green          yellow'     4     ,'red'tb答案' G$ Q1 F3 j  E7 y- u# l0 S
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列。
4 z/ E0 L9 S$ E; v我知道做到这一点的最愚蠢方法:在FROM部分中命名tbColors三次,每列替换使用不同的别名。
3 B* A: F! Q8 |& }. e" f一种非愚蠢的方式看起来怎么样?
  A$ R; d( o, u4 |1 t* E  D3 D                                                               
' r. d' p3 t) U    解决方案:                                                                . e0 X9 Y* D, S
                                                                这似乎是一条路:% [9 j6 C, Z  [; n. V
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_nameFROM tbAnswers AS AINNER JOIN tbColors AS C1  ON A.favorite_color = C1.color_codeINNER JOIN tbColors AS C2  ON A.least_favorite_color = C2.color_codeINNER JOIN tbColors AS C3  ON A.color_im_allergic_to = C3.color_code我敢说这是一个非常标准的查询,而不是愚蠢。这也假设所有列都将有效。否则,将是所有的INNER JOIN替换为LEFT JOIN
分享到:
回复

使用道具 举报

回答|共 17 个

小漠

发表于 2022-3-3 23:54:34 | 显示全部楼层

呵呵,低调,低调!
回复

使用道具 举报

山人看海

发表于 2022-3-5 14:38:14 | 显示全部楼层

这么强,支持楼主,佩服
回复

使用道具 举报

木子老头

发表于 2022-3-6 15:39:12 | 显示全部楼层

非常好,顶一下
回复

使用道具 举报

客观客

发表于 2022-3-7 09:54:05 | 显示全部楼层

小白一个 顶一下
回复

使用道具 举报

徐徐大猫

发表于 2022-3-8 05:25:13 | 显示全部楼层

哈哈 都不错啊
回复

使用道具 举报

堆雪

发表于 2022-3-8 06:03:34 | 显示全部楼层

前排支持下了哦~
回复

使用道具 举报

金双玲

发表于 2022-3-8 17:10:35 | 显示全部楼层

好帖必须得顶起
回复

使用道具 举报

長木安

发表于 2022-3-8 23:59:24 | 显示全部楼层

前排顶,很好!
回复

使用道具 举报

晨曦余痕

发表于 2022-3-9 06:10:58 | 显示全部楼层

不错 支持一个了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

29055 积分
9659 主题
热门推荐