感觉挺难的:这条sql语句应该如何写?
a表:
零件编号 英文名称
11331-01G01 MEMBER ASSY
11920-31UX2 BELT
11950-31U02 BELT-P/S.O/PUMP
13264-31U16 COVER ASSY-VALV
13264-31U20 COVER ASSY-VALV
13264-4E300 COVER ASSY-VALV
....
b表:
零件编号 中文名称
01436-00331 分电器螺丝 00231
01551-00033 仪表台卡子
01553-00855 门内饰板胶扣
01555-00023 DX 水管卡子 小
01555-00561 进气胶管卡子
.....
现在的要求是要将a表和b表中的相同的零件编号的中文名称添加到a表中,也就是翻译a表的零件名称的作用。如果这两个表的编号完全匹配,那么
这个sql语句我会写:
select a.*,b.中文名称 into newtable
from a inner join b on a.零件编号=b.零件编号
可是现在的问题是这两个表中的零件编号不完全匹配,也就是说a表中的某个编号的纪录b表中没有或者只有后五位数字不一样,但是现在已知只要编号的前五位相同,那么零件的名称
就相同,于是我写下了这个sql语句:
select a.*,b.中文名称 into newtable
from a inner join b on substring(a.零件编号,1,5)=substring(b.零件编号,1,5)
可是返回的结果不正确,原来a表中只有400多行,可是这条语句执行后变成了1万多行。
想想可能是因为a,b表中前五位数字相同的行都有很多,所以对于每个纪录连接时就返回了多个与他相同的行吧
那么这条sql语句应该怎么写呢?
语句中用了中文是为了让您看得明白,实际的语句没有中文。。。