关于两个表的数据查询的问题,想了好就都没解决!请各位高手帮忙!!!!

pj9413837 2006-10-20 03:05:12
有两个access表,表1:设计师表,表2:设计师作品表.

表1的结构: 表2的结构:
设计师ID 设计师的ID
设计师的名字 设计师的作品
设计师作品的发布时间

在表1里一个设计师只有1个ID.在表2里一个设计师有多个作品,但不是每个设计师都有作品发布

现在要求查询表2,显示有作品的设计师的名字和这个设计师最新的一个作品

这个查询语句困惑了我好久,请各位高手帮忙解决一下.
...全文
249 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
pj9413837 2006-10-22
  • 打赏
  • 举报
回复
楼上的,你能把你测试成功的代码放上来吗?
我在这里测试一下!然后告诉你结果!!!
我没有MSN,QQ号是:9413837
i9988 2006-10-21
  • 打赏
  • 举报
回复
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

括号位置不对

hhhdyj 2006-10-21
  • 打赏
  • 举报
回复
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
hhhdyj 2006-10-21
  • 打赏
  • 举报
回复
楼主,我自己建了测试数据,没有发现问题。
设计师表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吗?hhhdyj@hotmail.com
pj9413837 2006-10-21
  • 打赏
  • 举报
回复
可能是我没说清楚要求.
"要求显示有作品的设计师的名字和这个设计师最新的一个作品"
注意:每个设计师的名字只显示一次,作品也只显示最新的一个作品
pj9413837 2006-10-21
  • 打赏
  • 举报
回复
回复楼上的,按照你的意思改了,但问题没解决
要求的是:查询表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
hhhdyj 2006-10-21
  • 打赏
  • 举报
回复
不好意思,忘了说把Inner Join改成Left Join了
hhhdyj 2006-10-21
  • 打赏
  • 举报
回复
不知楼主是不是说没有作品的工程师没有选出来,如果是的话在条件中加入
Or B.Date Is Null
就可以了。
如果还是和楼主要的结果不一样,能不能用例子说明俺错在哪里。
十一月猪 2006-10-21
  • 打赏
  • 举报
回复

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
pj9413837 2006-10-21
  • 打赏
  • 举报
回复
回复8楼的:
我用你的方法写了查询,返回的记录不符合上面的要求.你自己可以在SQL里试试
pj9413837 2006-10-21
  • 打赏
  • 举报
回复
回复楼上的:我把括号位置改了还是报错:

错误类型:
Microsoft JET Database Engine (0x80040E14)
JOIN 操作语法错误。
pj9413837 2006-10-20
  • 打赏
  • 举报
回复
也是错的,难道没人会这样的查询语句吗?
allright_flash 2006-10-20
  • 打赏
  • 举报
回复
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
pj9413837 2006-10-20
  • 打赏
  • 举报
回复
我把二楼的joun 改成join 后,又报了个错误,还是语法错误:

错误类型:
Microsoft JET Database Engine (0x80040E14)
语法错误。 在查询表达式 '' 中。

pj9413837 2006-10-20
  • 打赏
  • 举报
回复
结合二楼的方法,我是这么写的:

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

但是报错了
pj9413837 2006-10-20
  • 打赏
  • 举报
回复
不行,报语法错误.我试了上面的两种方法都不行.二楼的方法报下面的错误:

错误类型:
Microsoft JET Database Engine (0x80040E14)
JOIN 操作语法错误。
/aaaaaaaaaaaaaaaa/Untitled-2.asp, 第 15 行
i9988 2006-10-20
  • 打赏
  • 举报
回复
sql server可以这样,不知道access可不可以

select 设计师的名字,设计师的作品
from 设计师表 a left joun 设计师作品表 b
on a.设计师ID=b.设计师的ID
and b.设计师作品的发布时间=(select max(设计师作品的发布时间) from 设计师作品表 where 设计师ID=b.设计师的ID)
WangZWang 2006-10-20
  • 打赏
  • 举报
回复
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.发布时间)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧