我有两张桌子,一张用于图像,一张用于零件。部件具有图像,但部件是重复的,因此图像是重复的。我想下载图片只需一个唯一的部件号。
One PartNumber HAS many images (all the same at different locations)
One PartID HAS one image (unique imageid)
One ImageID HAS one partnumber
我总结了下表:
Part Table: PartNumber, ImageID
Image Table: ImageID, ImageName, ImageSaved (true or false - 1,0)
示例数据将是:
部件:(P1,1),(P1,2),(P1,3),(P2,4)
图像:(1,I1,1),(2,I2,0),(3,I3,0),(4,I4,0)
因此,P1具有图像I1..3但它们实际上是相同的图像但存储在不同的位置。因此,一旦下载一次(imagesaved = 1),该部分的其他记录可以被忽略。
我尝试了以下内容来提取所有图像,但我需要添加一些东西来阻止系统下载所有重复的图像(现在正在发生)。
select * from trahanimage ti1 inner join
(
select top 10 ti.imageid, trp.manpartnumber, ti.imagename,
ti.imageurl, row_number()
over(partition by trp.manpartnumber order by trp.manpartnumber) as rk
from trahanimage ti
inner join trahanretailerpart trp
on trp.imageid = ti.imageid
and ti.imagetype = 2
and ti.imageSaved = 0
and trp.currentpart = 1
and trp.shopid = 10 ) as summary on summary.imageid = ti1.imageid
and summary.rk = 1
这是第一次使用,但是在下载之后,imagesaved为一个记录(例如I1)更改为1,然后当下一批次运行时,它需要忽略为已保存图像的部分加入的图像。我认为在summary.rk之后需要一个新的连接。从逻辑上讲逻辑是
and summary.rk =1 and ti1.imageid not in (select imageid from
trahanimage where imagesaved = 1 and manpartnumber = part number in
inner join).
欢迎任何帮助。