本帖最后由 leisure2102 于 2012-09-03 12:59:16 编辑

解决方案 »

  1.   


    select a.numa,b.sun,b.moon,c.star from 表a as a left join 表b as b on a.numa=b.numa left join 表c on a.numa=c.numa
      

  2.   

    select a.numa,b.sun,b.moon,c.star from 表a as a left join 表b as b on a.numa=b.numa left join 表c on a.numa=c.numa
      

  3.   

    前面的少了一列,
    select a.numa,b.sun,b.moon,c.star,a.conntent from 表a as a left join 表b as b on a.numa=b.numa 
    left join 表c on a.numa=c.numa
      

  4.   

    写这个不算问题,问题是逻辑
    谁是first,谁是secondary?
    看起来B是主要的?C是第二?A是第三?
    另外写SQL语句和C#没啥关系。
      

  5.   

    这是SQL,不是C#,代码如下:
    SELECT 表A.numA, sun, moon, null star, conntent
    FROM 表B,表A
    WHERE 表B.numA = 表A.numA
    UNION ALL
    SELECT 表A.numA, sun,null moon, star, conntent
    FROM 表C,表A
    WHERE 表C.numA = 表A.numA
    ORDER BY numA
      

  6.   

    直接上代码了/*建表*/
    create table tableA
    (
    numA varchar(10),
    content varchar(10)
    )
    create table tableB
    (
    numA varchar(10),
    sun varchar(10),
    moon varchar(10)
    )
    create table tableC
    (
    numA varchar(10),
    sun varchar(10),
    star varchar(10)
    )/*插值*/
    insert into tableA values ('黄','好人')
    insert into tableA values ('刘','坏人')
    insert into tableA values ('张','傻瓜')insert into tableB values ('黄','很大','很小')
    insert into tableB values ('黄','中间','一般大')
    insert into tableB values ('刘','还好','微小')insert into tableC values ('黄','很大','很小')
    insert into tableC values ('张','中间','一般大')/*查询*/
    select a.numA,b.sun,b.moon,c.star,a.content 
    from tableA a 
    left join tableB b on a.numA=b.numA  
    left join tableC c on a.numA=c.numA
      

  7.   


    CREATE TABLE  A
    (
    numA varchar(10),
    conntent  varchar(30)
    )
    INSERT INTO A
    SELECT '黄','好人' UNION ALL 
    SELECT '刘','坏人' UNION ALL 
    SELECT '张','傻瓜' 
    CREATE TABLE  B
    (
    numA varchar(10),
    sun varchar(10),
    moon  varchar(30)
    )
    INSERT INTO B
    SELECT '黄','很大','很小' UNION ALL 
    SELECT '黄','中间','一般大' UNION ALL 
    SELECT '刘','还好','微小'
    CREATE TABLE  C
    (
    numA varchar(10),
    sun varchar(10),
    star  varchar(30)
    )INSERT INTO C
    SELECT '黄','很大','很小' UNION ALL 
    SELECT '张','中间','一般大' select A.numA, C.sun, B.moon,C.star,A.conntent from A full join B on A.numA=B.numA
          left join C on A.numA=C.numA
    /*
    numA       sun        moon                           star                           conntent
    ---------- ---------- ------------------------------ ------------------------------ ------------------------------
    黄          很大         很小                             很小                             好人
    黄          很大         一般大                            很小                             好人
    刘          NULL       微小                             NULL                           坏人
    张          中间         NULL                           一般大                            傻瓜(4 行受影响)
    */
      

  8.   


    CREATE TABLE  A
    (
        numA varchar(10),
        conntent  varchar(30)
    )
    INSERT INTO A
    SELECT '黄','好人' UNION ALL 
    SELECT '刘','坏人' UNION ALL 
    SELECT '张','傻瓜' 
    CREATE TABLE  B
    (
        numA varchar(10),
        sun varchar(10),
        moon  varchar(30)
    )
    INSERT INTO B
    SELECT '黄','很大','很小' UNION ALL 
    SELECT '黄','中间','一般大' UNION ALL 
    SELECT '刘','还好','微小'
    CREATE TABLE  C
    (
        numA varchar(10),
        sun varchar(10),
        star  varchar(30)
    )INSERT INTO C
    SELECT '黄','很大','很小' UNION ALL 
    SELECT '张','中间','一般大' select A.numA, C.sun, B.moon,C.star,A.conntent from A full join B on A.numA=B.numA
          left join C on A.numA=C.numA
    /*
    numA       sun        moon                           star                           conntent
    ---------- ---------- ------------------------------ ------------------------------ ------------------------------
    黄          很大         很小                             很小                             好人
    黄          很大         一般大                            很小                             好人
    刘          NULL       微小                             NULL                           坏人
    张          中间         NULL                           一般大                            傻瓜(4 行受影响)
    */
      

  9.   

    sql我就不写了,其实那张表作为主表是要看你需求来的,我看你的numA sun moon star conntent
    输出字段,判断第二张表有两个字段,所以建议用第2张表做主表。
    因为有些数据不是inner join就可以出来的会用到left join。
    我个人认为应该是你根据需求认为那张表的数据为主,来根据查询。菜鸟的看法,仅供参考!!!
      

  10.   


    seelct a.numA,b.sun,moon,star,conntent from a
    join b on a.numA=b.numA
    join c on a.numA=b.numA and b.sun=c.sun
    但是这个输出和你结果有差别,要么是你关系有问题,要么你没描述清楚
    numA sun moon star conntent
    黄 很大 很小  很小 好人
    黄 中间 一般大 NULL 好人
    刘 还好 微小 NULL 坏人
    张 中间 NULL 一般大 傻瓜