有二个表a和b
a表字段
id name
1   aaa
2   bbb
3   cccb表中含有id和name1
         1   xxxx
         1   yyyy
         2   zzzz
         2   uuuu
         2   vvvv
         3   wwww
         3   xxxx
我想得到 1 aaa xxxx
        2 bbb zzzz
        3 ccc wwww

解决方案 »

  1.   

    b表需要一个序号,数据库的存储位置是没有意义的。也就是说你凭什么是aaa xxx而不是aaa yyy
      

  2.   

    b表中是有一个序号no,但我想根据id关联
      

  3.   

    我用这个不行呀:
    select a.name b.names from a left join b using(id)
      

  4.   

    没用过mysql,估计这里用mysql的也不多
      

  5.   

    看看这里:
    http://blog.chinaunix.net/u/29134/showart_465578.html
      

  6.   

    看不出你要的name1究竟是什么条件。你如果是要存储进去数据库的第一个记录的话,可以试试group byselect a.Id,a.name,b.name1 from a inner join b on a.Id=b.Id group by b.Id;
      

  7.   

    对,就是取b表中相同id的第一个数据
      

  8.   

    直接group by 就只显示记录的第一个咯。
      

  9.   

    谢谢楼上,但好象出错!
    如果有where语句及order by 等应该怎么放
    select   a.Id,a.name,b.name1   from   a   inner   join   b   on   a.Id=b.Id   group   by   b.Id where a.check='1' order by a.postdate DESC 0,5
      

  10.   

    先where,再group by,最后order
      

  11.   

    好像得不到,
     1       xxxx 
     1       yyyy 
    需要唯一的1.
      

  12.   

    没用的,b表中的id和name1不具备唯一性,缺少排序的条件,那个select *出来的数据顺序是没有意义的,你可以用b表的no排序,直接关联到id会有问题