V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
chggg
V2EX  ›  PHP

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

  •  
  •   chggg · Jun 27, 2016 · 2672 views
    This topic created in 3592 days ago, the information mentioned may be changed or developed.
    , 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
       Jun 27, 2016
    应该是 order 表是主表, provider 表要去左连 order 表,还有其它表要左连 order 表
    txoooy
        2
    txoooy  
       Jun 27, 2016
    用 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
    """
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5065 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 09:48 · PVG 17:48 · LAX 02:48 · JFK 05:48
    ♥ Do have faith in what you're doing.