0

結合したい 2 つのテーブルがあります。問題は、データをトリミングする必要があることです。

== Product Description

id              sku                 price

1               674_orange          45.99
2               645_black           59.99
5               592_rubyred         69.99

== Product Attributes

id          sku     description

11          674     lorem ipsum long text description of 674
22          645     lorem ipsum keywords for this item
33          592     lorem ipsum colours on this item

SKU でこれらのテーブルを結合したいと考えています。LIKEただし、または%が十分に正確であるとは思わないため、置換を行う必要がありますか?

4

2 に答える 2

2

使用する

select *
from description d
join attributes a on a.sku = substring(sku, 1, locate('_', sku)-1)

locate('_', sku)文字列内のの位置を取得_します

substring(sku, 1, locate('_', sku)+1)から部分文字列を抽出しskuます。部分文字列は の位置で始まり、1の前の位置で終わり_ます。が使われるのはそのため-1です。

SQLFiddle デモ

于 2012-11-27T10:47:47.697 に答える
1

これを試して:

SELECT * FROM ProductDescription pd 
INNER JOIN ProductAttributes pa ON SUBSTRING_INDEX(pd.sku, '_', 1) = pa.sku ;
于 2012-11-27T10:54:56.140 に答える