INSERT INTO C
(a,b,c,d,e)
SELECT A.a,A.b,A.c,B.d,B.e
FROM (SELECT * FROM X) A,(SELECT * FROM Y) B;X表有a,b,c 3个字段
Y表有d,e 2个字段
C表有a,b,c,d,e 5个字段没环境,试不了,只好来问了..
这样的语句编绎会有错吗?如果没错,运行结果会是怎样?

解决方案 »

  1.   

    貌似没有问题INSERT INTO C
    (a,b,c,d,e)
    SELECT A.a,A.b,A.c,B.d,B.e
    FROM X A,Y B;其实这样就可以了假设X
    1   1   1
    2   2   2 
    Y
    3    3
    4    4c表应该是
    1 1 1 3 3
    1 1 1 4 4
    2 2 2 3 3
    2 2 2 4 4
      

  2.   

    INSERT INTO C
    (a,b,c,d,e)
    SELECT A.a,A.b,A.c,B.d,B.e
    FROM (SELECT * FROM X) A,(SELECT * FROM Y) B;
    這種寫法很有創意
    但是我們從來不這樣寫
      

  3.   

    其实A 就是X表. B就是Y表. 貌似没问题, 其实问题大了. A和B没有条件限制, 最终笛卡尔集将出现多条无用的记录.