SQL选择字段使用另一个表中的其他字段的一部分

时间:2013-11-21 16:06:59

标签: mysql sql join inner-join

您好我有以下两个表:

表A:

Field1 | Field2
---------------
9911-4 | 4800
9911-6 | 400
9911-9 | 480
785-25 | 455
6523-1 | 221

在表B中我有:

ID   | Name
------------
9911 | A
785  | B

因此,TableA中的Field1具有ID号,并且必须使用TableB的字段ID进行连接。

输出必须是:

  ID   | Name
  ------------
  9911 | A
  785  | B

但ID必须是TableA的Field1的JOINT。 TableA中的Field1具有NUMBER-NUMBER,其中第一个数字是TableB的ID

提前致谢

3 个答案:

答案 0 :(得分:5)

SELECT * from TableA join TableB on id=SUBSTRING_INDEX(field1,'-',2)

答案 1 :(得分:1)

基本上,您可以找到表中的 - 并在开头和短划线之间获取字符串,然后加入第二个表中的列。

SELECT TABLEB.Name from TABLEA
INNER JOIN TABLEB ON 
SUBSTRING(TABLEA.Field1,0,CHARINDEX('-', TableA.Field1)) = TABLEB.ID

答案 2 :(得分:0)

你可以试试这个:

select *
from TableA join TableB on id=substring(Field1,1,instr(Field1,'-')-1)