大家好,初次学习MySQL。有个操作不是很明白,希望能得到指教。
我有多个表,结构有部分相同,比如部分列是一样的,都有姓名这一些,但是数据个数不一样,有的多,有的少。我现在需要把这些表汇总成一个信息总表,可是因为数据个数的问题,这个表有220个数据,那个表却有328个数据,具体要怎么操作呢?有谁愿意给个解决方案吗?谢谢

解决方案 »

  1.   

    不知道我的理解是不是正确
    说下思路,多表链接,取你需要的数据
    表A
    Name,Age,Sex
    表B
    Name,English,Chineseselect a1.*,b1.English,b1.Chinese from A a1 left join B b1 on a1.name=b1.name
      

  2.   

    “数据个数” 是什么意思,数据列数还是行数? UNION ALL 或者两表连接。
      

  3.   

    --动态获取表头公共部分
    DECLARE @s NVARCHAR(4000)
    SELECT  @s = ISNULL(@s + ',', '') + QUOTENAME(字段名称)
    FROM (
    SELECT A.* FROM (
    Select A.NAME 字段名称
    FROM syscolumns A
    JOIN sysobjects B ON A.id=B.id
    JOIN systypes C ON A.xusertype=C.xusertype
    WHERE B.name ='A')A JOIN (
    Select A.NAME 字段名称
    FROM syscolumns A
    JOIN sysobjects B ON A.id=B.id
    JOIN systypes C ON A.xusertype=C.xusertype
    WHERE B.name ='B')B ON A.字段名称=B.字段名称)D
    --构建查询语句
    DECLARE @SQL NVARCHAR(4000)
    SELECT  @SQL='
    SELECT '+@s+'                                           
    FROM A'
    EXEC (@SQL)