表A:存的数据如下
sbNo  STime         ETime
101   2010-02-02    2010-02-03
101   2010-02-04    2010-02-04
101   2010-02-05    2010-02-06
102   2010-02-02    2010-02-04
103   2010-05-06    2010-05-06表B:存的数据如下:
cdid  adress   name    value
101   东风路   传感器    2
101   东风路   传感器    5
102   平原路   温度      1
102   平原路   温度      3
103   云景里   甲烷      4其中:sbNo 和cdid 是关联的
如何设计一个MySQL语句,使得查出来的数据如下:
sbNo  STime         ETime         adress   name 
101   2010-02-02    2010-02-03    东风路   传感器
101   2010-02-04    2010-02-04    东风路   传感器
101   2010-02-05    2010-02-06    东风路   传感器
102   2010-02-02    2010-02-04    平原路   温度
103   2010-05-06    2010-05-06    云景里   甲烷就是主要以表A的数据为主,只是将表B的adress 和name 字段加在后面,通过 sbNO和cdid匹配。大哥帮帮忙啊!小弟菜鸟。。谢谢啦

解决方案 »

  1.   

    select
      a.*,b.adress,b.name 
    from
      a inner join b
    on
      a.sbno=b.cdid
      

  2.   

    select a.* , b.adress ,b.name 
    from a , b
    where a.sbNo = b.cdid
    order by a.sbNo , a.STime
      

  3.   

    就是说如果:表A数据:
    sbNO  fTime
    101    2010-02-03
    102    -------
    103    --------
    表B
    cdid  adress
    101    aaaaa
    101    aaaaa
    102    bbbbb
    102    bbbbb
    103    ccccc
    103    ccccc查询来这样的效果:
    sbNo  fTime       adress
    101   2010-02-03    aaaaa
    102   --------      bbbbb
    103   --------      ccccc
      

  4.   

    select DISINTCT a.* , b.adress ,b.name 
    from a , b
    where a.sbNo = b.cdid
    order by a.sbNo , a.STime
      

  5.   

    是多对多的情况,但是表B的数据可以用distinct的数据,id号相同的,adress和name也是一样的,取一个就可以。但是表A的所有记录都得有
      

  6.   

    这样distinct ,查出来的每个sbNo只有一条啊,我是想要跟表A记录数一样多的数据
      

  7.   

    select a.* , t.adress,t.name
    from a , b t where a.sbno = t.cdid and not exists(select 1 from b where cdid = t.cdid and value < t.value)
      

  8.   

    表A的记录数不变,如果表B的cdid=sbNo,就将表B的adress 和name 字段加在 表A每行记录的后面
      

  9.   

    大哥,你的 not exists(select 1 from b where cdid = t.cdid and value < t.value)
    这句是什么意思啊?B表的value没用的啊,不需要这个数据,
      

  10.   

    mysql> select a.*,b.adress,b.name from a left join b on a.sbno=b.cdid group by sbno,stime;
    +------+------------+------------+--------+--------+
    | sbNo | STime      | ETime      | adress | name   |
    +------+------------+------------+--------+--------+
    |  101 | 2010-02-02 | 2010-02-03 | 东风路 | 传感器 |
    |  101 | 2010-02-04 | 2010-02-04 | 东风路 | 传感器 |
    |  101 | 2010-02-05 | 2010-02-06 | 东风路 | 传感器 |
    |  102 | 2010-02-02 | 2010-02-04 | 平原路 | 温度   |
    |  103 | 2010-05-06 | 2010-05-06 | 云景里 | 甲烷   |
    +------+------------+------------+--------+--------+
    5 rows in set (0.00 sec)
      

  11.   

    --方法一。
    select a.* , max(t.adress) adress,max(t.name) name
    from a , b t where a.sbno = t.cdid
    group by a.sbno,a.stime,a.etime--方法二。
    select a.* , t.adress,t.name
    from a , b t where a.sbno = t.cdid and not exists(select 1 from b where cdid = t.cdid and value < t.value)
      

  12.   

    谢谢啦啊!!!mysql> select a.*,b.adress,b.name from a left join b on a.sbno=b.cdid group by sbno,stime;是这样的。
    再问一句哈:如果我想加个判断,就是查询时间 fTime在某个范围的数据时,上面的语句怎么改啊?
      

  13.   


    mysql> select a.*,b.adress,b.name from a left join b on a.sbno=b.cdid group by sbno,stime如果想加句: where cast(fTim as char(10))>='2010-02-03' 这样能行么?
    好像不可以加在 on的后面吧?
      

  14.   

    写错了,是 where cast(STime as char(10))>='2010-02-03'
      

  15.   

    select sbNo, STime ,ETime,cdid ,adress, [name]from 表A,表Bwhere 表A.sbNo=表B.cdid 
      

  16.   

    mysql> select a.*,b.adress,b.name from a left join b on a.sbno=b.cdid group by sbno,stime;大哥们,好人做到底啊!!能加条件判断语句么?按条件显示查出来的结果,比如时间在某个范围,sbNO=?等条件。
      

  17.   

    mysql> select a.*,b.adress,b.name from a left join b on a.sbno=b.cdid where cast(STime as char(10))>='2010-02-03' group by sbno,stime
        -> ;
    +------+------------+------------+--------+--------+
    | sbNo | STime      | ETime      | adress | name   |
    +------+------------+------------+--------+--------+
    |  101 | 2010-02-04 | 2010-02-04 | 东风路 | 传感器 |
    |  101 | 2010-02-05 | 2010-02-06 | 东风路 | 传感器 |
    |  103 | 2010-05-06 | 2010-05-06 | 云景里 | 甲烷   |
    +------+------------+------------+--------+--------+
    3 rows in set (0.00 sec)