0

我有两个要加入的表。问题是,数据需要一些修整。

== 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 上加入这些表。但是我需要进行替换,因为我认为 aLIKE%不够准确?

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。子字符串将从 position 开始1并在 before 结束_。这就是为什么-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 回答