在SQLCE 4.0 中
设表一: ID,NameID  表二:ID,NameID,INFO表一可以 对应表二 一条或者多条记录,但我想在连接查询时,只连接表二的最新那一条记录,ID值大者为最新,
select * from 表一 left join 表二 on 表一.NameID=表二.NameID
这样的话,如果表二有多条符合的记录会全部与表一的组合被查询出来,我只想要一条记录,保留表二中符合条件的ID值最大那一条,应该怎么样写?连接查询

解决方案 »

  1.   

    select * from 表一 , 表二 where 表一.NameID=表二.NameID and 表二.ID in(select max(ID) from 表二group by NameID)这样虽然解决了,不知道这样写法好不好,大家给点意见吧,谢谢
      

  2.   

    select * from 表一 left join 表二 on 表一.NameID=表二.NameID and 表二.ID in(select max(ID) from 表二group by NameID)应该是这样
      

  3.   

    LZ的写法不严谨喔,应该这样写,select * 
     from 表一  a 
     inner join 表二 b on a.NameID=b.NameID
     where not exists
     (select 1 from 表二 c where c.NameID=b.NameID and c.ID>b.ID)
      

  4.   

    学习!使用in可能会变成全表扫描,效率会比较低。用exist应该会保持比较好的效率。
      

  5.   

    惭愧,没好好学过怎么写代码,都是在要使用时才GOOGLE的~