表1
     ID    siteID     logValue
     1       1          111
     2       2          222
     3       3          333
     4       2          444
     5       2          555
     6       3          666
     7       1          777
表2
     ID        StieID      StieName
      1           1          北京
      2           2          上海
      3           3          香港我现在只会将表1原封不动的显示到GridView中,代码如下:
 
     SqlConnection connection = new SqlConnection(conString);
        connection.Open();      string sql = "select siteId,logValue from 表1";
        SqlCommand cmd = new SqlCommand(sql, connection);// 定义Command对象
        SqlDataAdapter daAdapter = new SqlDataAdapter();
        daAdapter.SelectCommand = cmd;
        dsData = new DataSet();
        daAdapter.Fill(dsData);        connection.Close();        dt = dsData.Tables[0];
        GridView1.DataSource = dt;
        GridView1.DataBind();
  我现在想在GridView中呈现的效果是:     ID    siteID        logValue
     1       北京          111
     2       上海          222
     3       香港          333
     4       上海          444
     5       上海          555
     6       香港          666
     7       北京          777
如何将表1和表二关联起来呢?达到我想呈现的那个效果。
希望高手指点,万分感激!!!!!

解决方案 »

  1.   

    不直接写答案了,给你个方向inner join
      

  2.   

    select A.ID,A.SiteID,A.LogValue,B.SiteName from  表1 AS A 
    INNER JOIN 表2 AS B on A.SiteID= B.SiteID
      

  3.   

    select a.siteId,b.StieName,a.logValue from 表1 a inner join 表2 b on a.siteId = b.siteId
      

  4.   

    select ID,StieName,logValue from 表1 a
    inner jion 表2 b on a.siteID=b.siteID 
      

  5.   

    楼上各位, 为什么不首先想到left join而想到了inner join?根据需求显然需要的是left join啊。
      

  6.   


    如果表1与表2有主外建关系,这样做也可以,也很容易接受
    (也适合很多张表的链接查询)
    select  table1.id,table2.stieName,table1.logValue from table1,table2
     where table1.StieID=table2.StieID    
      

  7.   

    select a.siteId,b.StieName,a.logValue from 表1 a inner join 表2 b on a.siteId = b.siteId或者select a.siteId,b.StieName,a.logValue from 表1 a,表2 b where a.siteId = b.siteId
      

  8.   


    select ID,StieName,logValue from 表1 a left jion 表2 b on a.siteID=b.siteID 
      

  9.   

    C#不是可以图形化操作的嘛,你放两个数据源。然后配置数据源,里面有where语句的。选出另个表的条件就可以了
      

  10.   


    楼主并没有提到, 这里有外键约束。因此我们并不确定上面的值一定在下面出现。
    (当然实际情况到底是什么样我们并不清楚。)
    也就是说, 有可能上面表中可能出现, 下面表中没有的ID。当这种情况发生的时候, inner join会删掉这些行。
    而left join则会保留这些行, 并且认为这是不能处理的行, 在右面置null。没有任何理由认为, lz想删除这些行。
    所以, 应该是left join