MYSQL合并两个表中的两列,并且仍然使用左连接

MYSQL合并两个表中的两列,并且仍然使用左连接,mysql,left-join,Mysql,Left Join,因此,由于一些原因,我不得不在两个不同的表中为一个产品节约价格,这有点小问题。可以把两列合并成一列吗?我知道联盟是存在的,但它和左联有效吗 非常感谢任何指点 致意 看来你会从中受益 COALESCE()接受多个参数,并返回第一个非空参数 SELECT si.id AS shop_item_id, si.item_price, s.logo_file_name, p.cat_id AS category_id, api.item_price AS

因此,由于一些原因,我不得不在两个不同的表中为一个产品节约价格,这有点小问题。可以把两列合并成一列吗?我知道联盟是存在的,但它和左联有效吗

非常感谢任何指点

致意


看来你会从中受益

COALESCE()接受多个参数,并返回第一个非空参数

SELECT
     si.id AS shop_item_id,
     si.item_price,
     s.logo_file_name,
     p.cat_id AS category_id,
     api.item_price AS api_price,
     MAX(c.campaign_desc) AS campaignDesc,
     MAX(c.campaign_type_id) AS campaignType,
     MAX(c.shop_id) AS campaign_shop_id,
     MAX(ct.image_name) AS campaignLogo
FROM
    shop_item si

LEFT JOIN
    shop s ON
        s.id = si.shop_id
LEFT JOIN
    product p ON
        si.product_id = p.id
LEFT JOIN
    campaign_category cc ON
        cc.category_id = p.cat_id
LEFT JOIN
    campaign c ON
        c.id = cc.campaign_id AND
        c.shop_id = si.shop_id AND
        c.show_in_pricetable = 1 AND
        NOW() BETWEEN c.date_from and c.date_to
LEFT JOIN
    campaign_type ct ON
        c.campaign_type_id = ct.id
LEFT JOIN 
    shop_api_item api ON 
        si.rel_feed_api = api.unique_id AND si.shop_id = api.shop_id
WHERE
    si.`product_id` = 586 AND
    s.`active_shop` = 1
GROUP BY
    s.name,
    si.id ,
    si.item_price
ORDER BY
    si.`item_price`,
    si.`shop_id`,
    c.`campaign_desc` DESC
SELECT
     si.id AS shop_item_id,
     COALESCE(si.item_price, api.item_price) AS coalesced_price,
 ...