下面是一个实际情况的变更,看似简单,想了半天竟然没搞出来,请同仁们赐教一下,不胜感激。
情况如下:
假如有A B C三张表。
A:AID 、MessageNumber、User
B: BID、MessageNumber、ImageNmae
C: CID、ImageName、ImageURL、InDate
A中的一个Message可以对应B中多条Image(通过MessageNumber)。
B中一个ImageName对应C中一条数据(通过ImageName)。通过C中的ImageURL可以判断出图片是否重复,如果itemURL相同,认为重复。
-------------------------------------------------------------------------------------------------------
要求删除B表中Message重复的Image信息,只保留重复Image中最新的一条,根据C表中的InDate判断。
注意:一条Message可能有多张图片,有些重复,有些不重复,并且重复条数不定。
delete tableb from tableb x, (select bid,maxt(indate) from(select b.bid,b.messagenumber ,c.indate from tabelb b left join tablec c) t group by t.messagenumbe,t.bid) w where x.bid<>w.bid