sql 查询结果合并

两张表,之前使用UNION来合并,现在表A中添加了新的字段,而表B中没有,现在
在用UNION就会报错,

请问一下这里应该用什么方法?

SELECT
    `a`.`XingHaoMingChen` AS `xinghaomingchen`,
    ifnull(
        `c`.`LiPinBianMa`,
        `a`.`XingHaoBianMa`
    ) AS `xinghaobianma`,
    `a`.`XiTongFenLei` AS `xitongfenlei`,
    `a`.`ID` AS `lipinid`,
    `b`.`NAME` AS `lipinxiaolei`,
    (
        CASE
        WHEN (`c`.`sl` < 0) THEN
            0
        ELSE
            `c`.`sl`
        END
    ) AS `lipinkucun`
FROM
    (
        (
            `chan_pin_xuan_xing_zhu_biao` `a`
            LEFT JOIN `sys_common_type` `b` ON (
                (
                    `a`.`XiTongFenLei` = `b`.`ID`
                )
            )
        )
        LEFT JOIN `v_li_pin_ku_cun` `c` ON ((`a`.`ID` = `c`.`LiPinid`))
    )
WHERE
    (
        `a`.`XiTongFenLei` IN (
            SELECT
                `v_li_pin_fen_lei`.`id`
            FROM
                `v_li_pin_fen_lei`
        )
        AND (`c`.`sl` > 0)
    )
UNION
    SELECT
        `a`.`XingHaoMingChen` AS `xinghaomingchen`,
        `a`.`XingHaoBianMa` AS `xinghaobianma`,
        `a`.`XiTongFenLei` AS `xitongfenlei`,
        `a`.`ID` AS `lipinid`,
        `b`.`NAME` AS `lipinxiaolei`,
        NULL AS `lipinkucun`
    FROM
        (
            `chan_pin_xuan_xing_zhu_biao` `a`
            LEFT JOIN `sys_common_type` `b` ON (
                (
                    `a`.`XiTongFenLei` = `b`.`ID`
                )
            )
        )
    WHERE
        `a`.`XiTongFenLei` IN (
            SELECT
                `v_li_pin_fen_lei`.`id`
            FROM
                `v_li_pin_fen_lei`
        )
阅读 3k
2 个回答

添加一个占位字段
SELECT '' AS 'A表中有B表中没有的字段'

你可以在B表里同样添加一个与其对应的字段呗、一切迎刃而解

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题