现在需要一条语句,需求:
插入一条记录到TB1(Id,name,age,add,city,state)
其中name,age从TB2(ID,C_ID,name,age,submittime)中来(条件C_ID=20)
其中add,city从TB3(ID,C_ID,add,city,submittime)中来(条件C_ID=20)
State=0
请问这条语句要怎么写啊?

解决方案 »

  1.   

    insert TB1(Id,name,age,[add],city,[state])
    select name ,age,[add],city,[state]=0
    from TB2 JOIN TB3 ON TB2.c_id=TB3.C_ID
    WHERE TB2.C_ID=20
      

  2.   

    id是子增列吗? try
    insert TB1(name,age,add,city,state)
    select a.name,a.age,b.add,b.city,0
    from tb2 a
    join tb3 b on a.c_id=b.c_id
    where a.c_id=20
      

  3.   

    tb1的ID是自增列吗?
    insert into TB1(name,age,add,city,state)
    select m.name,m.age,n.add,n.city,State=0 from tb2 m , tb3 n where m.c_id = n.c_id and m.c_id = 20
      

  4.   

    如果tb1的ID是自增列吗?
    insert into TB1(name,age,add,city,state)
    select m.name,m.age,n.add,n.city,State=0 from tb2 m , tb3 n where m.c_id = n.c_id and m.c_id = 20 
     
    如果tb1的ID不是自增列,自己带入一个固定值,例如:
    insert into TB1
    select 某固定值,m.name,m.age,n.add,n.city,State=0 from tb2 m , tb3 n where m.c_id = n.c_id and m.c_id = 20 
      

  5.   

    INSERT INTO TB1(....)
    SELECT TB2.Name,TB2.Age,TB3.Add,TB3.City FROM TB2 INNER JOIN TB3 ON TB2.ID=TB3.ID AND TB2.C_ID=20 AND TB3.C_ID=20
      

  6.   

    哦,不好意思,ID是自增的
    谢谢各位了,学习了,再增加一点语句难度
    如果TB2和TB3不关联,即TB2.C_ID=20 And TB3.C_ID=40语句该怎么写呢?
      

  7.   


    两个不关联的记录你要怎么对应呢?
    比如 tb2表有a,b值,tb3表有c,d值
    你取的是
    a c
    a d
    b c
    b d
    全部吗?还是其中一部分
      

  8.   

    哦,还是没说明白
    C_ID是外键,正常情况下TB2,TB3的即State=0(在两个表中没标出来)的C_id只有一条记录