每个它与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中会有什么…??]
假设ID是介于01
和99
:之间的字符串
select *
from TableA a
join TableB b
on a.id = substring(b.FieldB, 3, 2)
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
您可以使用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 ] )
//像这个
SELECT * FROM TableNAme INNER JOIN SecondTableName ON TableName.ID=SecondTableName.ID;