我有两张包含以下结构的表格
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为IMAGE_HASHNAME分配了AAA值 AA3为IMAGE_HASHNAME
分配AAA值此新的重新排序必须插入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。 哪里错了?
我为我的英语道歉。
答案 0 :(得分:1)
找到匹配
SELECT upc FROM tbl_inv
WHERE sku in ( SELECT sku FROM tbl_images)
此查询将返回0123,即SKU AAA的upc
- 作为sku做出的假设是独一无二的
答案 1 :(得分: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