表A: 有a b c 三行,每行有4列,表B:有b c e 三行,列字段,列数跟A表一样,先要拼接二表。做成a b c e四行,每行有8列。求语法,坐等,在线等,急!分不多,只能先来先得了。。

解决方案 »

  1.   

    贴建表及插入记录的SQL,及要求结果出来看看
      

  2.   

    CREATE TABLE `t_acc_template_fee` (
      `PlateCode` char(12) NOT NULL DEFAULT '0' COMMENT '模板编号',
      `varieties_pre` varchar(10) DEFAULT NULL COMMENT '品种前缀',
      `varieties_name` varchar(50) DEFAULT NULL COMMENT '品种名称',
      `exchange_id` varchar(50) DEFAULT NULL COMMENT '品种所属市场代码',
      `open_money` decimal(19,8) DEFAULT NULL COMMENT '开仓手续费(金额)',
      `open_volume` decimal(19,8) DEFAULT NULL COMMENT '开仓手续费(手)',
      `close_money` decimal(19,8) DEFAULT NULL COMMENT '平仓手续费(金额)',
      `close_volume` decimal(19,8) DEFAULT NULL COMMENT '平仓手续费(手)',
      `close_today_money` decimal(19,8) DEFAULT NULL COMMENT '平今手续费(金额)',
      `close_today_volume` decimal(19,8) DEFAULT NULL COMMENT '平今手续费(手)',
      `deliver_money` decimal(19,8) DEFAULT NULL COMMENT '交割手续费(金额)',
      `deliver_volume` decimal(19,8) DEFAULT NULL COMMENT '交割手续费(手)',
      `settlement_money` decimal(22,6) DEFAULT NULL COMMENT '结算手续费(金额)',
      `settlement_volume` decimal(19,8) DEFAULT NULL COMMENT '结算手续费(手)',
      `transfer_money` decimal(22,6) DEFAULT NULL COMMENT '移仓手续费(金额)',
      `transfer_volume` decimal(19,8) DEFAULT NULL COMMENT '移仓手续费(手)',
      `modify_date` date DEFAULT NULL COMMENT '修改时间',
      `IsDel` int(11) DEFAULT NULL COMMENT '作废标志',
      `tdxtimestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '时间戳',
      UNIQUE KEY `PlateCode` (`PlateCode`,`varieties_pre`,`exchange_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='手续费模板详细信息表';
      

  3.   

    CREATE TABLE `t_acc_template_chk` (
      `InstanceID` int(11) NOT NULL COMMENT '流程实例ID',
      `PlateCode` char(12) NOT NULL COMMENT '模板代码',
      `varieties_pre` varchar(10) NOT NULL DEFAULT '' COMMENT '品种前缀',
      `varieties_name` varchar(50) DEFAULT NULL COMMENT '品种名称',
      `exchange_id` varchar(50) DEFAULT NULL COMMENT '品种所属市场代码',
      `open_money` decimal(19,8) DEFAULT NULL COMMENT '开仓手续费(金额)',
      `open_volume` decimal(19,8) DEFAULT NULL COMMENT '开仓手续费(手)',
      `close_money` decimal(19,8) DEFAULT NULL COMMENT '平仓手续费(金额)',
      `close_volume` decimal(19,8) DEFAULT NULL COMMENT '平仓手续费(手)',
      `close_today_money` decimal(19,8) DEFAULT NULL COMMENT '平今手续费(金额)',
      `close_today_volume` decimal(19,8) DEFAULT NULL COMMENT '平今手续费(手)',
      `deliver_money` decimal(19,8) DEFAULT NULL COMMENT '交割手续费(金额)',
      `deliver_volume` decimal(19,6) DEFAULT NULL COMMENT '交割手续费(手)',
      `settlement_money` decimal(19,8) DEFAULT NULL COMMENT '结算手续费(金额)',
      `settlement_volume` decimal(19,6) DEFAULT NULL COMMENT '结算手续费(手)',
      `transfer_money` decimal(19,8) DEFAULT NULL COMMENT '移仓手续费(金额)',
      `transfer_volume` decimal(19,6) DEFAULT NULL COMMENT '移仓手续费(手)',
      `modify_date` char(8) DEFAULT NULL COMMENT '修改日期',
      `modify_time` char(8) DEFAULT NULL COMMENT '修改时间',
      `IsDel` int(11) DEFAULT NULL COMMENT '作废标志',
      `tdxtimestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '时间戳',
      `IsSCB` int(11) DEFAULT '0' COMMENT '是否需要市场部审核',
      PRIMARY KEY (`InstanceID`,`PlateCode`,`varieties_pre`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='审核手续费模板表';
      

  4.   

    你A、B表用全外联不行吗?(FULL JOIN)
    Select A.*,B.* from a full join b on a.key = b.key 
      

  5.   

    我用的mysql 没有外联的用法。不过我用了a左联b,b左联a,再union,解决了这个问题。
      

  6.   

    select * from a left join b on a.id=b.id
    union all
    select * from a right join b on a.id=b.id and a.id is null