如何在列中连接两个具有相同值的表

时间:2015-12-29 10:27:49

标签: php mysql sql-server join

每一个人 它与MYSQL查询有关... 我有两张桌子...... 表A就像

|ID | Field 1| Field 2 |
------------------------
| 01 | ASD    | SDF     |
------------------------
| 02 | ghg    | OOi     |
------------------------

B就像

------------------------
|ID | Field A | Field B |
-------------------------
| 1 | XYZ     | AB01    |
| 2 | XYZ     | AB02    |
-------------------------

现在表B中的字段B值 - AB01 这里01是表A的ID值。

现在我的问题是如何在A和B表中使用内部连接

像 来自B. 内连接表A对??? [On Clause中会有什么...... ??]

4 个答案:

答案 0 :(得分:1)

假设ID是0199之间的字符串:

select  *
from    TableA a
join    TableB b
on      a.id = substring(b.FieldB, 3, 2)

答案 1 :(得分:1)

Try this
DECLARE @RESULT TABLE
(        
        ID      INT, 
        Field_1 varchar(10),
        Field_2 varchar(10)

)        
INSERT @RESULT VALUES
(01, 'ASD','SDF')
,(02, 'ghg','OOi')

DECLARE @RESULT1 TABLE
(        
        ID      INT, 
        Field_a varchar(10),
        Field_b varchar(10)

)        
INSERT @RESULT1 VALUES
(01, 'xyz','ab01')
,(02, 'xyz','ab02')

select * from  @RESULT r1 inner join @RESULT1 r2
on right(r2.Field_b,2)=r1.id 

答案 2 :(得分:0)

//喜欢这个

SELECT * FROM TableNAme INNER JOIN SecondTableName ON TableName.ID=SecondTableName.ID;

答案 3 :(得分:0)

你可以使用SUBSTRING函数,如:

SELECT * FROM TableA a
INNER JOIN TableB b ON a.id = SUBSTRING(b.FieldB, 3, 2)

这将返回所有记录。

mysql中的SUBSTRING有三个参数。

  • 您的字段名称(您的字段名称)
  • 起点(您想要开始的地方)
  • 长度(你想要多少个角色)

像:

SUBSTRING( string, start_position, [ length ] ) 

SUBSTRING( string FROM start_position [ FOR length ] )