2016-06-10 103 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;它已经半小时了,没有得到任何排队结果。 :) –