小白教程

 找回密码
 立即注册
查看: 7867|回复: 4

[已解决]一张表的字段与另一张表字段的值关联

[复制链接]

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2021-4-20 16:19:31 | 显示全部楼层 |阅读模式
有两张表,A表,有字段:id,a1,a2,a3,......   ;B表,有字段: id,column,name。

怎么查甲、乙、丙对应的A表的值
最佳答案
2021-5-4 16:12:49
  1. select B.name,
  2.   (case B.column
  3.     when 'a1' then A.a1
  4.     when 'a2' then A.a2
  5.     when 'a3' then A.a3
  6.     else 0
  7. end) value
  8. from A,B where A.id=B.id
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-4-23 05:03:58 | 显示全部楼层
column可以重复不,不能重复的话,你就先B表列转行,然后关联查询
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-4 16:12:49 | 显示全部楼层 &
  1. select B.name,
  2.   (case B.column
  3.     when 'a1' then A.a1
  4.     when 'a2' then A.a2
  5.     when 'a3' then A.a3
  6.     else 0
  7. end) value
  8. from A,B where A.id=B.id
复制代码
回复

使用道具 举报

0

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2021-5-8 13:40:19 | 显示全部楼层
这个表结构首先就感觉有点迷,不利于查询。。。
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-5-18 07:31:10 | 显示全部楼层
  1. select b.name,(select case when b.column = 'a1' then a1  when b.column = 'a2' then a2 when b.column = 'a2' then a2 from a where a.id = b.id) as val from b
复制代码
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-9-20 12:39 , Processed in 0.028548 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表