美文网首页mysql数据库
mysql根据字段值关联查不同表

mysql根据字段值关联查不同表

作者: Geroge1226 | 来源:发表于2024-01-30 14:16 被阅读0次

1、说明

背景:存在一张会员表(mc_profiles),表中存储了服务店铺id(store_id)和店铺类型(store_type=1,2,3),如下:

id member_id store_id store_type
1 661111 1001 1
1 662000 2002 2
1 663000 3001 3
  • 当store_type=1时,店铺信息实际指代的店铺(bas_store)表
id store_name
1001 上海店
1002 北京店
  • 当store_type=2时,店铺信息实际指代的是运动城(bas_sports_city)表
id store_name
2001 青海运动城
2002 天津运动城
  • 当store_type=3时,店铺信息实际指代的是异业渠道(bas_extros)表
id store_name
3001 四川异业渠道
3002 广西异业渠道

需求:查询出会员信息及其店铺信息(memberId,storeName,storeId)。

2、实现方式

方式一: 使用left join 结合case when 判断直接取值

select mp.member_id ,mp.store_id,
case mp.store_type 
      when  1 then bs.store_name
      when  2 then sc.store_name
      when 3 then be.store_name end as 'store_name'
  from  mc_profiles mp  
left join bas_store bs on bs.id=mp.store_id
left join bas_sports_city sc on sc.id=mp.store_id
left join bas_extros be.id=mp.store_id

相关文章

网友评论

    本文标题:mysql根据字段值关联查不同表

    本文链接:https://www.haomeiwen.com/subject/ivtgydtx.html