没看懂。查询3的连接是错的呀?作者: sgrshh29 时间: 2008-1-10 10:16
SELECT a.大类, Max(b.id) AS id之Max
FROM [SELECT 表1.大类, Max(表2.使用次数) AS 使用次数之Max FROM 表1 INNER JOIN 表2 ON 表1.id = 表2.图片id GROUP BY 表1.大类;]. as a INNER JOIN [SELECT 表1.大类, 表2.id, 表2.使用次数 FROM 表1 INNER JOIN 表2 ON 表1.id = 表2.图片id ]. as b ON (a.使用次数之Max = b.使用次数) AND (a.大类 = b.大类)
GROUP BY a.大类作者: 静儿 时间: 2008-1-10 14:09
那如何将找出的这几条记录做更新查询呢?使用次数更新为0。作者: sgrshh29 时间: 2008-1-10 14:54
因为上面给出的查询是一个不可更新的查询,所以要转个弯。
1、先把上面的查询改为生成表查询,就是第一行改为SELECT a.大类, Max(b.id) AS id INTO JINGER,其它行内容不变。
2、再做一个更新查询:UPDATE 表2 INNER JOIN JINGER ON 表2.id=JINGER.id SET 表2.使用次数 = 0;
3、然后做个宏(或者用代码)依次执行这二个查询,再执行deleteobject删除那个JINGER临时表。用的时候只要运行宏就可以了。作者: 静儿 时间: 2008-1-10 15:50
有没有更简单一点的?作者: sgrshh29 时间: 2008-1-10 16:07
很抱歉,想不出更简单的方法,看看其它人是否有更简洁的方法。作者: t小宝 时间: 2008-1-10 18:07 标题: 看看这样行不行 UPDATE 表2 SET 表2.使用次数 = 0
WHERE (((表2.id) In (SELECT First(表2.id) AS id之第一条记录 FROM 表1 AS a INNER JOIN 表2 ON a.id = 表2.图片id
WHERE ((使用次数=(SELECT DISTINCT top 1 使用次数 FROM 表1 INNER JOIN 表2 ON 表1.id = 表2.图片id Where 大类=a.大类 Order By 使用次数 desc)))
GROUP BY a.大类)));