问题如下:
表A                       表B
zd1 | zd2  | zd3          zd1  | zd2  | zd3   
1   | hehe | nini         1.1.1| hehe | nini
1.1 | hehe | nini         1.1.2| hehe | nini
1.2 | hehe | nini         1.1.3| hehe | nini
现在我想建立如下视图
视图C
zd1  | zd2  | zd3
1    | hehe | nini
1.1  | hehe | nini         
1.2  | hehe | nini         
1.1.1| hehe | nini
1.1.2| hehe | nini
1.1.3| hehe | nini
请问视图语句怎么写?

解决方案 »

  1.   

    select * from (
    select *,1 as px from ba
    union all
    select *,2 from bb) a order by px
      

  2.   

    create view C
    as 
    select * from A
    union all
    select * from B
      

  3.   

    orselect zd1,zd2,zd3 from ( 
    select *,1 as px from ba 
    union all 
    select *,2 from bb) a order by px
      

  4.   

    create view tt
    as 
    select zd1,zd2,zd3 from ( 
    select *,1 as px from ba 
    union all 
    select *,2 from bb) a order by px
      

  5.   

    mysql> select * from a;
    +------+------+------+
    | zd1  | zd2  | zd3  |
    +------+------+------+
    | 1    | hehe | nini |
    | 1.1  | hehe | nini |
    | 1.2  | hehe | nini |
    +------+------+------+
    3 rows in set (0.00 sec)mysql> select * from b;
    +-------+------+------+
    | zd1   | zd2  | zd3  |
    +-------+------+------+
    | 1.1.1 | hehe | nini |
    | 1.1.2 | hehe | nini |
    | 1.1.3 | hehe | nini |
    +-------+------+------+
    3 rows in set (0.00 sec)mysql> create view c as
        -> select * from a
        -> union all
        -> select * from b;
    Query OK, 0 rows affected (0.09 smysql> select * from c;
    +-------+------+------+
    | zd1   | zd2  | zd3  |
    +-------+------+------+
    | 1     | hehe | nini |
    | 1.1   | hehe | nini |
    | 1.2   | hehe | nini |
    | 1.1.1 | hehe | nini |
    | 1.1.2 | hehe | nini |
    | 1.1.3 | hehe | nini |
    +-------+------+------+
    6 rows in set (0.00 sec)mysql>
      

  6.   

    谢谢,建立视图失败(mysql error code 1064),但作为查询语句还可以