我现在要做这样一个查询
2张表:A,B,A表有字段id,name,B表有id,cid,content,uptime,其中A.id=B.cid,
现要查询A表的name对应B表的前3个connect,按照B表的uptime倒序排列  
Select * from a t1
Inner join b  t2 on t1.id=t2.cid and t2.content in (select top 3 b.content  from b where b.cid=t1.id  order  by  uptime desc)但是提示This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
但我用的也是mysql5.0的网上查了下原因,也说是in里面不能有limit 

解决方案 »

  1.   

    Select * 
    from a t1 Inner join b t2 on t1.id=t2.cid 
    order by t2.uptime desc limit 3
      

  2.   

    这样的话只能查出3条记录来
    我要的效果是:
    A表里会有N个name,每个name对应B表里N条数据
    如果有10个name,那么每个name对应B表里3条数据,总共就是30条
      

  3.   

    这样的话只能查出3条记录来 
    我要的效果是: 
    A表里会有N个name,每个name对应B表里N条数据 
    如果有10个name,那么每个name对应B表里3条数据,总共就是30条
      

  4.   

    Select * 
    from a t1 Inner join b t2 on t1.id=t2.cid 
    where 3>(select count(1) from b where cid =t2.cid and uptime>t2.uptime)
      

  5.   

    感谢楼上的大虾,问题解决了。
    还有点小问题,就是要进行两次排序,首先按照a.id进行排序,然后按照b.uptime进行排序,
    请问,加在什么地方比较合适?
      

  6.   

    Select * 
    from a t1 Inner join b t2 on t1.id=t2.cid 
    where 3>(select count(1) from b where cid =t2.cid and uptime>t2.uptime)
    order by a.id,b.uptime desc