weixin_40187983
weixin_40187983
采纳率73.6%
2018-06-29 13:12

SQL特殊使用法-表格的合并(使用mysql)

5
已采纳

我有两表格,要合并起来如下

https://www.zhihu.com/question/283224223
图片地址如上(我放在知乎)

A_table和B_table要合并成下面的表格,但是A_table列数是唯持不变的
是将B_table的值,载入进来
特别的地方是:B_table中A_id有多次的重覆,但我只要把一个载入就好了
尽量不要用group by 因为量很大

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • caozhy 从今以后生命中的每一秒都属于我爱的人 3年前
     select aid, astr, (select max(bstr) from btable where aid = a.aid) as bstr from atable a
    
    或者先对b做griup by如果b不大,或者aid有索引,这个性能开销是不大的。
    
    select a.aid, a.astr, b.bstr from atable a left joim (select aid, max(bstr) as bstr from btable group by aid) b on a.aid = b.aid
    
    点赞 评论 复制链接分享
  • a1326195427 梦小星 3年前

    上面的代码有点问题,看这里的

    select a.a_id,a.a_str,ifnull(b.b_str,'') from atable a left join (select b.b_id,b.b_str from btable group by b.b_id,b.b_str) b on b.a_id=a.a_id

    或 导出结果集到一个新的表

    select a.a_id,a.a_str,ifnull(b.b_str,'')

    into newTable
    from atable a inner join (select b.b_id,b.b_str from btable group by b.b_id,b.b_str) b on b.a_id=a.a_id

    点赞 评论 复制链接分享
  • a1326195427 梦小星 3年前

    select a.a_id,a.a_str,b.b_str from atable a inner join (select b.b_id,b.b_str from btable group by b.b_id,b.b_str) b on b.a_id=a.a_id

    或 导出结果集到一个新的表

    select a.a_id,a.a_str,b.b_str

    into newTable
    from atable a inner join (select b.b_id,b.b_str from btable group by b.b_id,b.b_str) b on b.a_id=a.a_id

    点赞 评论 复制链接分享
  • qq_23967953 qq_23967953 3年前

    SELECT DISTINCT A.a_id,A.a_str,B.b_str FROM A LEFT OUTER JOIN B ON A.a_id=B.a_id ORDER BY A.a_id;
    这样行吗 最近在学MySQL

    点赞 评论 复制链接分享
  • weixin_40187983 weixin_40187983 3年前

    图片说明

    点赞 评论 复制链接分享

相关推荐