有三个表:rules(sid,name,description),signature(sid,summary,detail),information(id,name,summary,detail).
能否直接将select * from rules,signature where rules.sid = signature.sid的结果插入information表,这个
SQL语句该怎么写?

解决方案 »

  1.   

    insert into information select * from rules,signature where rules.sid = signature.sid;字段必须对应
      

  2.   

    insert into signature
    (sig_sid, sig_name, sig_class_id, service_id, sig_priority, cve_num,
            bugtraq_num,arachnids_num, safe_advice,false_positives,
            false_negatives, ease_of_attack, affected_systems)
    values select
    rules.sid,  rules.msg, sig_class.sig_class_id, services.service_port,
    sig_class.sig_class_priority,rules.cve, rules.bugtraq, rules.arachnids,
    test_signature.corrective_action, test_signature.false_positives,
    test_signature.false_negatives,test_signature.ease_of_attack,
    test_signature.affected_systems
    from rules,sig_class,services,test_signature
    where
    rules.service=services.service_port and 
    rules.classType=sig_class.sig_class_name and 
    rules.sid=test_signature.sid; 这样为什么有错???
      

  3.   

    我知道了,把values去掉就可以了。