美文网首页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