2015-12-29 45 views
1

每一位 它與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在??? [什麼將是在第... ??]

+0

有沒有一個......? – AKVYAS23

+0

有技術上它們之間沒有關係,表B中的字段A不等於字段表A. 1 – devpro

+0

解決方案是,你需要爲表的參考ID ... – devpro

回答

0

那麼你可以使用字符串函數,如:

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

這將返回所有記錄。

SUBSTRING在mysql中有三個PARAMS。

  • 您的字段名(你的字段名)
  • 起點(要啓動)
  • 長度(多少字你想)

像:

SUBSTRING(string, start_position, [ length ]) 

SUBSTRING(string FROM start_position [ FOR length ]) 
+1

感謝名單... ..弟兄它的工作.... – AKVYAS23

1

假設ID是0199之間的字符串:

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

請解釋這 - a.id =子(b.FieldB,3,2)3,2爲什麼寫 – AKVYAS23

+0

謝謝兄弟......它的工作... – AKVYAS23

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 
+0

我無法在解碼此一般MySQL查詢...... – AKVYAS23

0

//像這個

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

字段不完全相同,所以,我不能這樣做一般的方式.. – AKVYAS23

相關問題