Select a.*,b.作品,b.发布时间
from 表1 as a 
     inner Join 表2 as b on a.设计师ID=b.设计师ID
where not exists(Select * from 表2 
         where 设计师ID=b.设计师ID and 发布时间>b.发布时间)

解决方案 »

  1.   

    sql server可以这样,不知道access可不可以select 设计师的名字,设计师的作品
    from 设计师表 a left joun 设计师作品表 b
    on a.设计师ID=b.设计师的ID
    and b.设计师作品的发布时间=(select max(设计师作品的发布时间) from 设计师作品表 where 设计师ID=b.设计师的ID)
      

  2.   

    不行,报语法错误.我试了上面的两种方法都不行.二楼的方法报下面的错误:错误类型:
    Microsoft JET Database Engine (0x80040E14)
    JOIN 操作语法错误。
    /aaaaaaaaaaaaaaaa/Untitled-2.asp, 第 15 行
      

  3.   

    结合二楼的方法,我是这么写的:dim myconn,strconn
    set myconn = server.createobject("adodb.connection") 
    strconn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("13110866350.mdb")
    myconn.open strconn 
    Set rs= Server.CreateObject("adodb.recordset")
    rs.open "select a.Cpsb,b.Picture from Stylist as a left joun Casus as b on a.ID=b.StyID and b.idate=(select max(b.idate from Casus where a.ID=b.StyID))",myconn,1,1但是报错了
      

  4.   

    我把二楼的joun 改成join 后,又报了个错误,还是语法错误:错误类型:
    Microsoft JET Database Engine (0x80040E14)
    语法错误。 在查询表达式 '' 中。
      

  5.   

    select a.设计师的名字,c.设计师的作品 from (select top 1 b.设计师的ID,b.设计师的作品 from 表2 b order by 设计师作品的发布时间 desc)c
    from a,c
    where a.设计师ID=c.设计师的ID
      

  6.   

    Select
    A.ID, A.Name, B.Works, B.Date
    From
    TableA A
    Inner Join
    TableB B
    On
    A.id = B.id
    Where
    B.Date = (Select Max(Date) From TableB Where ID = B.ID)TableA是表1,TableB是表2
      

  7.   

    try:dim myconn,strconn
    set myconn = server.createobject("adodb.connection") 
    strconn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("13110866350.mdb")
    myconn.open strconn 
    Set rs= Server.CreateObject("adodb.recordset")
    rs.open "select a.Cpsb,b.Picture from Stylist as a left joun Casus as b on a.ID=b.StyID and b.idate=(select max(b.idate) from Casus where a.ID=b.StyID)",myconn,1,1括号位置不对
      

  8.   

    回复楼上的:我把括号位置改了还是报错:错误类型:
    Microsoft JET Database Engine (0x80040E14)
    JOIN 操作语法错误。
      

  9.   

    回复8楼的:
    我用你的方法写了查询,返回的记录不符合上面的要求.你自己可以在SQL里试试
      

  10.   


    select name , id , b.product from t1
    inner join
    (
    select * from t2 a
    where not exists(select 1 from t2 a.id = id and a.time < time)) b
    on t1.id = b.id
      

  11.   

    不知楼主是不是说没有作品的工程师没有选出来,如果是的话在条件中加入
    Or B.Date Is Null
    就可以了。
    如果还是和楼主要的结果不一样,能不能用例子说明俺错在哪里。
      

  12.   

    不好意思,忘了说把Inner Join改成Left Join了
      

  13.   

    回复楼上的,按照你的意思改了,但问题没解决
    要求的是:查询表2,显示有作品的设计师的名字和这个设计师最新的一个作品但你的查询结果是设计师的名字有重复的,下面是部分的查询结果:19 叶宝平  uploadfiles/2006-5/2006052416111196267.jpg 2006-05-24 00:00:00
    19 叶宝平  uploadfiles/2006-5/2006052416124117127.jpg 2006-05-24 00:00:00
    37 赵 钧  uploadfiles/2006-3/2006033009175678412.jpg 2006-03-30 00:00:00
    19 叶宝平  uploadfiles/2006-5/2006052416090323488.jpg 2006-05-19 00:00:00
    19 叶宝平  uploadfiles/2006-5/2006051914442242071.jpg 2006-05-19 00:00:00
      

  14.   

    楼主,我自己建了测试数据,没有发现问题。
    设计师表ID Name
    1 zhang san
    2 li si
    3 wang wu
    4 ddd
    设计师作品表
    ID Works Date
    1 A 2006/08/04
    1 B 2006/09/01
    1 C 2006/10/08
    2 N 2006/08/07
    3 D 2006/08/09
    3 M 2006/10/01
    查询结果
    ID Name Works Date
    1 zhang san C 2006/10/08
    2 li si N 2006/08/07
    3 wang wu M 2006/10/01
    4 ddd
    帖子上交流很不方便。
    能加我MSN吗?[email protected]
      

  15.   

    楼上的,你能把你测试成功的代码放上来吗?
    我在这里测试一下!然后告诉你结果!!!
    我没有MSN,QQ号是:9413837