insert into a(user_id,p_id) select b.uid,b.pid from b b where user_id=b.uid报错“user_id” 标识符无效

解决方案 »

  1.   

    你要干嘛?
    你a表的user_id 不是主键吧?insert into a (user_id,p_id) 
    select b.uid,b.pid from b where exists(select 1 from a where a.user_id=b.uid)
      

  2.   

    原因很简单,子查询中的user_id不存在B表中!
    不知道你要干什么?
      

  3.   

    select b.uid,b.pid from b b where user_id=b.uid
    b表没有user_id列
      

  4.   

    很明显,表中没有user_id这个字段,你添加这个字段就行了
      

  5.   

    我是insert 语句 而不是子查询语句 我感觉 user_id 应该是a表的吧
      

  6.   

    insert into a(user_id,p_id) select b.uid,b.pid from b b where user_id=b.uid
    就算user_id是表a的 也不能这么用 
    insert 语句不是查询语句 不在from中 userid当然不存在你是不是想这样啊 把b的uid在表a中存在的数据插入a中
    insert into a(user_id,p_id) select b.uid,b.pid from b b where b.uid in (select user_id from a)
      

  7.   

    搞定了 这样太麻烦了 直接将查询结果转化成视图在insert 进a表