V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chggg
V2EX  ›  PHP

求大神, mysql 根据条件用不同字段连表问题

  •  
  •   chggg · 2016-06-27 11:29:21 +08:00 · 2340 次点击
    这是一个创建于 3072 天前的主题,其中的信息可能已经有所发展或是发生改变。
    , order 表有 drug_provider_id , provider_id , order_type 字段,当 order_type=3 , provider_id 取 drug_provider_id ,否则取 provider_id 。 provider 表有 id 字段,
    我要用字段
    if(t1.order_type = 3 ,t1.drug_provider_id,t1.provider_id) as provider_id 去左连 provider 表的 ID 字段具体语句怎么写
    chggg
        1
    chggg  
    OP
       2016-06-27 11:42:03 +08:00
    应该是 order 表是主表, provider 表要去左连 order 表,还有其它表要左连 order 表
    txoooy
        2
    txoooy  
       2016-06-27 13:31:58 +08:00
    用 union 吧, 举个例子:

    """
    SELECT
    o.id AS order_id,
    p. NAME AS provider_name
    FROM
    test.order o
    INNER JOIN test.provider p ON o.order_type = 3
    AND o.provider_Id = p.id

    UNION

    SELECT
    o.id AS order_id,
    p. NAME AS provider_name
    FROM
    test.order o
    INNER JOIN test.drug_provider p ON o.order_type != 3
    AND o.drug_provider_id = p.id
    """
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   895 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:41 · PVG 04:41 · LAX 12:41 · JFK 15:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.