2016-06-10 105 views
0

我無法匹配其他表中的值並獲取相應的值。我有兩個表格,一個是產品表格,另一個是表格2,我需要將第二個表格的零件編號與第一個表格的oe編號進行匹配並獲得SKU。 問題是OE號碼是一堆數字,我需要使用類似instr的東西。例如,表格看起來像這樣。SQL匹配行

產品表

OeNum  |  SKU    
123-546-625 |  A001   
568-623-855 |  A002  

部分表

PArtid 
623 
625 

比如我需要檢查,如果在OENUM任何行有像零件號的字符串,如果有一個返回的SKU。在上面的例子中PARTID 623 oenumber的第二行中,以便其返回值

partID | SKU 
    623 | A002 
    625 | A001 

我使用的查詢爲:

select s.sku, p.id 
from sk s, part p 
where instr(s.oenum,p.id)>0; 

,但似乎並不奏效。

請幫忙。

+0

'p.id'應該是'p.partID'。 – Barmar

+0

它可以解決這個錯誤:http://www.sqlfiddle.com/#!9/522a73/2 – Barmar

+0

因此,oenum包含有關產品所有部件的信息? – jarlh

回答

0

如果有沒有在你的表非常多的數據,我可以提供你嘗試類似:

select s.sku, p.id from sk s join part p on s.oenum like '%'+p.id+'%' 
+0

這與使用'instr()'有何不同? – Barmar

+0

其實instr更好。 – Gar

+0

有200,000行,產品表中有oenum和sku,零件表中有293000。我嘗試從sk s選擇s.sku,p.id ,部分p 其中instr(s.oenum,p.id)> 0;它已經半小時了,沒有得到任何排隊結果。 :) –