2

次の構造のテーブルが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コードが一致しない状態で画像を更新して挿入したい。

UPC番号が重複しているため、sku AAA、AA2、およびAA3の製品が一致します。

取得する必要のある最終結果は次のとおりです。

IMAGE_HASHNAMEのAAAに割り当てられたAA2の値IMAGE_HASHNAMEのAAAに割り当てられたAA3の値

この新しい記録は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)  

このクエリは、SKUAAAのupcである0123を返します。

-ここでは、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 に答える