主表contentmap(id,pubdate)从表material(materialid,filepath,filename,mapid)
contentmap的id与从表的mapid是一对多的关系
现在想从contentmap取出记录,并且取出与之对应的material记录,但是只从material中取materialid最大的一条记录.也就是是说,contentmap与material本来是一对多,但是我想取出的结果是一对一的。不知道这样能不能实现?
在此跪谢先

解决方案 »

  1.   

    select * from material,contentmap where mapid=contentmap.id order by material.materialid desc limit 1;
      

  2.   

    呵呵,可能我没说清楚
    contentmap
    id           pubdate
    1            2006-7
    2            2006-8
    material
    materialid   filename filepath mapid
    1            1.jpg             1
    2            2.jpg             1
    3            3.jpg             2
    4            4.jpg             2
    查出来的结果是:1   2006-7    2      2.jpg
    2   2006-8    4      4.jpg
      

  3.   

    select * from contentmap left join (
    select * from material where materialid in (
    select max(materialid) from material group by mapid ))as temp on contentmap.id=temp.mapid
      

  4.   

    select id,pubdate,filename,materialid from contentmap left join  material on contentmap.id=material.mapid where materialid in(
    select max(materialid) from material group by mapid)
    比上面的那条效率好点
      

  5.   

    to yangxiao_jiang(哈哈)
    谢谢兄弟,第1个可以用,第2个查询出来的记录不全