开发者社区> 问答> 正文

如何将一张表的一列插入到另一张表的一列

问题:
表table1有A字段,B字段,C字段,但是C字段为空,A,B字段均有数。
表table2有字段C,类型同table1中的C一样。
table1和table2两个表的记录数目相等。
如何将table2中 的C列数值插入到table1中的C中??
  




题目背景::
我是为了遍历一张表的每一个记录,于是想到给表添加一序号列,通过该序号列访问每个记录。直接给表添加序号列,有人说不行,于是我就想先生成一个序列,再把这个序列作为一列添加到待遍历的表中取。于是我写了183条
insert into table artist_id select  1 from (select count(*) from artist_id)a;
insert into table artist_id select  2 from (select count(*) from artist_id)a;



这样的语句,生成一个1到183的序列,表名为artist_id 。(这个方法很傻,写183条语句仅仅是为了得到长183的序列。但是为了比赛,183条语句也不算多)
但问题又来了,生成的这个序列,如何插入到待遍历的表中作为一列呢??试了 insert ,union,alter等语句。不会,或者不行。所以来提问







展开
收起
猪猪侠1 2016-06-22 11:30:13 6739 0
4 条回答
写回答
取消 提交回答
  • Re如何将一张表的一列插入到另一张表的一列
    sql 语句求助!!!从没用过sql,看了网上教程,才把数据表弄下来了,想把mars_tianchi_songs_ori和mars_tianchi_user_actions_ori 这两个数据表整合,得到一个新的三列的数据表,第一列为artist_id,第二列为num(该歌手每天点播量),第三列是对应日期,不知道怎么做了,于是尝试了做一个歌手的(sql语句如下),结果还是有错误,求助!sos!
    select song_id,action_type ,ds
    from mars_tianchi_songs_ori   mars_tianchi_user_actions_ori
    where mars_tianchi_songs_ori.artist_id='0693f5e1c570d9678523c41e03aae3ab'
    and mars_tianchi_user_actions_ori.action_type='1'
    and mars_tianchi_songs_ori.song_id=mars_tianchi_user_actions_ori.song_id
    2016-06-29 15:41:36
    赞同 展开评论 打赏
  • Re如何将一张表的一列插入到另一张表的一列
    楼主的artist的人数是183?不是100嘛

    -------------------------

    回 5楼猪猪侠1的帖子
    哈哈哈 用wayson大神的方法都可以获得啊~
    2016-06-23 09:46:00
    赞同 展开评论 打赏
  • 回 1楼wayson的帖子
    按照你说的,我做了一遍。真心感谢你。。SQL用好了,功能真的很强大。。。
    不过还有一个问题就是怎么把新的一列插入到已有表的一列??望大神求解

    -------------------------

    回 3楼cloudyf的帖子
    我题目中确实说错了。我分别需要获得100的序列和183的序列。天数和艺术家,我最后都想插入序号列呢。。
    2016-06-23 09:26:35
    赞同 展开评论 打赏
  • Re如何将一张表的一列插入到另一张表的一列
    我觉得不用这么麻烦,利用日期就可以自动生成一个从0-182的序列,参考
    select
      datediff(to_date( cast(ds as string),'yyyymmdd'),  to_date('20150301','yyyymmdd'), 'dd' ) idx,
      b.song_id
    from
    (
      select
        distinct ds,
        1 as id
      from user_actions
    ) a
    join
    (
      select
        distinct song_id,
        1 as id
      from user_actions
    ) b
    on a.id = b.id
    order by song_id, idx
    limit 1000;

    -------------------------

    回 2楼猪猪侠1的帖子
    刚才那个例子不就教你将表a中ds列插入到表b中,我觉得不应该有不需要join的插入列,那样有什么意义呢?

    -------------------------

    Re如何将一张表的一列插入到另一张表的一列
    虽然很简单,但还是建议你学习sql,不然很吃亏
    select
      a.artist_id,
      count(*) plays,
      b.ds
    from
      mars_tianchi_songs_ori a
    join
    ( select
         *
      from
        mars_tianchi_user_actions_ori
      where action_type = '1'
    ) b
    on a.song_id = b.song_id
    group by a.artist_id, b.ds
    2016-06-22 11:58:32
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
RowKey与索引设计:技巧与案例分析 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载