我觉得自己是一位体面的SQL程序员;然而,我遇到了一个我似乎无法找到一个优雅的解决方案来解决的情况。我的数据库中有两个表,一个tmp_media表和一个tbInventoryMedia表。我想从tbInventoryMedia中删除tmp_media表中不存在的所有媒体。但是,有一个明显的列VIN--一些VIN可以具有与其他媒体相同的媒体。SQL查询 - 需要优雅的解决方案
实施例:
tmp_media
Vin MediaId
X 20223
Y 54235
Z 20223
tbInventoryMedia
vin MediaId
X 20223
X 32131
Y 54235
Z 20223
在上面的例子中,X的VIN将被删除,其中mediaId是34131.
最后,tmp_media不包含所有的VIN的穷举列表,只有那些最近已经处理完毕。因此,tbInventoryMedia将会有其他媒体需要独立。只有位于tmp_media表中的VIN才能删除任何数据。
如果需要进一步说明,请告诉我 - 我想这很混乱。
您声明:“tmp_media没有包含所有VIN的详尽列表,只包含那些最近已经处理过的列表,因此tbInventoryMedia中还有其他媒体需要单独保留。如何区分应该删除的媒体与当tmp_media表中缺少媒体时应该保留的媒体? –
如果媒体的VIN不在tmp_media中,则不应删除。该系统相当复杂,我们处理大量汽车,只有一对夫妇一次更新。当他们更新时,汽车被放入tmp_media表中进行媒体处理。有时更新的汽车可能会删除图像,因此此过程将验证不再与汽车绑定的图像将从数据库中删除。 –