0

アイテムから値を取得するための SQL 行の記述方法を理解しようとしている問題があります。状況を説明しましょう。国内用と輸入用の 2 つの異なるデータベースがあります。商品コードが違うだけで同じ商品です。違いは、国際的なアイテムの末尾に -h があることだけです。だから例..

12345   < domestic 
12345-h < import

両方を組み合わせたフィードが進行中ですが、輸入品にはupcコードがありませんが、国内品にはupcコードがあります. だから私がやりたかったのは、両方の製品コードを一致させ、upc を -h 項目に追加することでした。

何か案は?

4

2 に答える 2

0

両方のテーブルを結合できます

 INNER JOIN ON (concat(domestic.itemid, '-h') = international.itemid)

Ms Access SQL ダイアレクト用にこれを調整する必要がある場合があります。concatには&、IIRCを使用できると思います。

于 2013-03-29T20:21:17.227 に答える
0

次のような構造が必要だと思います。

select <fields that you want>
from ((select <list of fields from domestic>, itemid as lookupitem
       from domestic d
      ) union all
      (select <list of most fields from import>, replace(itemid, '-h', '') as lookupitem
       from import i
      )
     ) f left join
     lookup lu
     on f.lookupitemid = lu.itemid

つまり、サブクエリで正しいフォームのフィールドを作成し、それを UPC を取得するために使用されるルックアップ テーブルに結合できます。一部のコードが実際には「-h」で終わらない可能性があることを想定して、「置換」を使用します。

于 2013-03-29T20:54:37.590 に答える