第一张表的内容已存在,后面两张表已建好,内容都是根据第一张表的内容生成的
跳线小结表jumper
FromDevice FromPin FromNet ToDevice ToPin ToNet
U2 30 M30 U3 14 M14
Jp1 1 M1 Jp1 2 M2
Jp2 11 M11 Jp2 12 M12
Jp2 12  M12  Jp3 21  M21 
Jp3 21  M21  Jp4 31 M31新的工作网络名表WkingNetName
ID Name
1 Net1
2 Net2
3 Net3

Name:根据表jumper中的fromnet和tonet取新的工作网络名name,若frompin和topin中有相同的则视为同一新网络名
(net1包括m30、m14; net2包括m1、m2; net3包括m11、m12、m21、m31)
还有,这个新生成的name取名不一定net1,net2,net3,大家看看什么命名规则合适。新的工作网络连接关系表WkingNetConectionRelation
ID WkingNetID WkingPinID
1 1 30
2 1 14
3 2 1
4 2 2
5 3 11
6 3 12
7 3 21
8 3 31Wkingpinid包含jumper表中的frompin和topin的所有内容,插入表之前去除重复的wkingpinid
Wkingnetid根据jumper表中的frompin和topin找到对应的fromnet和tonet,在对应wkingnetname表中的name找到对应的id才开始学sql,很多都不会,请各位大侠帮我看看吧,谢谢大家啦!SQLite3SQL

解决方案 »

  1.   

    自己顶上,求高人支招!我自己的想法:
        在jumper之后生成jumper2,这样再插入WkingNetConectionRelation中的Wkingnetid时,可以根据WkingPinID对应jumper2表中的frompin和topin,再找到对应的wkingnetname,在对应wkingnetname表中的name找到对应的id。表Jumper2
    ID FromDevice FromPin FromNet ToDevice ToPin ToNet WkingNetName
    1 U2 30 M30 U3 14 M14 Net1
    2 Jp1 1 M1 Jp1 2 M2 Net2
    3 Jp2 11 M11 Jp2 12 M12 Net3
    4 Jp2 12  M12  Jp3 21  M21  Net3
    5 Jp3 21  M21  Jp4 31 M31 Net3
    6 U2 30 M30 U3 14 M14 Net3
      

  2.   

    终于有人了,谢谢vastm的指点!
    我才开始学sqlite,脚本,触发器都不会,要怎么操作啊,可以具体点讲吗,谢谢!
      

  3.   

    建议你重新设计一下表结构,参考SQL SERVER入门书籍谈到的进存销那种设计模式careate trigger trigger_name on jumper
    for insert
    as
    declare @a  varchar(20),
    select @a=name from inserted        
    if not exists(  select name from jumper where name=@a and ) //在这里写条件
    begin//在这里写对应的语句执行操作
    else
    commit
    end
    go
      

  4.   


    非常感谢vastm的耐心回复!
    这个表的结构是老师定的,并且规定用sqlite3,SQL SERVER里面的用法sqlite里面有的都不能用,不知道该怎么实现
      

  5.   

    呜呜,没人帮我吗? 
    系统环境:vs2008,sqlite3.7.14.1
    用c++调用Sqlite3,不知道怎么实现