2

我有两个具有以下结构的表

tbl_inv

SKU   VID  UPC
AAA    2   0123
AA2    3   0123
AA3    4   0123
BBB    2   1234

此表包括所有产品,带有 sku、vid 和 UPC 编号。

tbl_images

SKU   VID  IMAGE_HASHNAME
AAA    2   fcd20a60fd5c1b64cee40ac0c019a022

此表包括带有图像的产品。我想在没有图像和 UPC 代码匹配的产品上进行更新和插入图像。

sku AAA、AA2 和 AA3 的产品匹配,因为 UPC 编号重复。

必须获得的最终结果是:

AA2 在 AAA 上为 IMAGE_HASHNAME 赋值 AA3 在 AAA 上为 IMAGE_HASHNAME 赋值

这个新记录必须插入 tbl_images

更新后的 tbl_images

SKU   VID  IMAGE_HASHNAME
AAA    2   fcd20a60fd5c1b64cee40ac0c019a022
AA2    3   fcd20a60fd5c1b64cee40ac0c019a022
AA3    4   fcd20a60fd5c1b64cee40ac0c019a022




SELECT i.UPC as upc
        FROM tbl_inv i 
        LEFT JOIN tbl_images img ON img.sku = i.sku AND img.vid = i.vid
        WHERE i.UPC != '' 
        AND img.image_hashname IS NOT NULL
        GROUP BY i.upc
        having count(i.upc) > 1

通过此查询,我尝试在表中查找匹配的记录,但不显示记录。在这个查询之后,我想用 PHP 复制文件,并在表 tbl_images 中插入 VALUES。我哪里错了?

我为我的英语道歉。

4

2 回答 2

1

找到匹配项

SELECT upc FROM tbl_inv
WHERE sku in ( SELECT sku FROM tbl_images)  

此查询将返回 0123,它是 SKU AAA 的 upc

-这里假设sku是唯一的

于 2012-10-11T09:57:00.343 回答
1

试试这个

select t3.SKU,t3.VID,t4.IMAGE_HASHNAME 
from tbl_inv as t3 left join 
   (selectt1.SKU,t1.VID,t1.UPC,t2.IMAGE_HASHNAME 
          from tbl_inv as t1 right join tbl_images ON t1.SKU=t2.SKU)
             as t4 on t3.UPC=t4.UPC
于 2012-10-11T11:17:47.097 回答