0

私はこれに数時間取り組んできました。私はこのクエリを持っています:

update xcart.xcart_products_lng_en
left join xcart.xcart_products 
    on xcart.xcart_products.productid = xcart.xcart_products_lng_en.productid
left join xcart.xcart_extra_field_values
    on xcart.xcart_extra_field_values.productid = xcart.xcart_products.productid
set `keywords` =  CONCAT(product, " ", productcode, " ",value) 
where value is not null;`

最初はこれで期待通りの結果が得られましたが、クライアントがデータベースをセットアップする方法には、私には理解できない問題があります。

VALUE をプルするテーブルが動的に生成され、最終的にこのようなものになることがわかります。

製品 1|フィールド ID 1|製品 ISBN
製品 1|フィールド ID 3|著者名
製品 1|フィールド ID 2|シェルフ ID

問題は、私が作成したクエリを実行すると、1 つのフィールド ID の値のみが追加され、他のフィールド ID は無視されることです。とにかくこれを行う方法はありますか? 私は「CONCAT」を知っていますが、それをどのように利用するか、またはこのインスタンスで使用する意味があるかどうかはわかりません。

~ トレイシー・ウォジク

4

1 に答える 1

1

結合によってテーブルが派生します。既存のテーブルを更新する必要があります。たとえば、テーブルとして T1、T2、T3 があり、T1、T2、T3 に基づいて T1 を更新する場合は、次のように記述します。

update T1
set T1.Field = (select ... from ... where ...)

これが役立つことを願っています。

于 2013-01-11T15:27:11.233 に答える