INSERT INTO `userTable` (`user_id`, `user_name`) VALUES
(1, 'dsf'),
(2, 'fgy'),
(3, 'faad');
这个插入语句没错吧?现在我需要user_id的1,2,3是从另一张表anotherTable中查找出的符合某个条件的所有值,应该怎么做?

解决方案 »

  1.   

    你上面的插入语句是有问题的.INSERT INTO XXX SELECT A,B,C,D FROM AAAAA;
    这种方式.
      

  2.   

    插入语句是从这个网页看到的http://www.ludou.org/insert-multiple-rows-with-a-single-sql-query.html
      

  3.   

    Quote: 引用 1 楼 ziwen00 的回复:

    你上面的插入语句是有问题的.INSERT INTO XXX SELECT A,B,C,D FROM AAAAA;
    这种方式.表XXX中其他的value都要另外指定,但user_id是从AAAA中查找到的,该怎么做?
      

  4.   


    那个例子是MYSQL的...PHP一般和MYSQL一起用.
    咱们这个是Oracle...
      

  5.   

    肯定是不行的,楼主可以自己验证下,values只能一条条的插入。对于一次插入多条记录,用insert ino ()
    select ..语句
      

  6.   


    A DEMO FOR YOU
    --建立测试表USERTABLE
    CREATE TABLE USERTABLE(
           USERID NUMBER(10),
           USERNAME VARCHAR2(100)
    );
    --建立测试表ANOTHERTABLE
    CREATE TABLE ANOHTERTABLE(
           USERID NUMBER(10),
           USERN VARCHAR2(100),
           USERDEP NUMBER(10)
    );
    --模拟测试数据
    INSERT INTO ANOHTERTABLE
    SELECT LEVEL,
    LEVEL||'NAME',
    MOD(LEVEL,4)
    FROM DUAL
    CONNECT BY LEVEL<=100;--从ANOTHERTABLE插入到USERTABLE中
    INSERT INTO USERTABLE(USERID, USERNAME)
        SELECT USERID, USERN FROM ANOHTERTABLE;
    大概的意思是,你需要SELECT出来一个结果集,这个结果集要与你要插入的那个表的表结构是一直的,然后前面加上INSERT INTO XXX