2013-11-21 75 views
0

你好,我有以下兩個表:SQL選擇字段

表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必須是與聯合的表A字段1。字段1 TableA中有NUMBER-NUMBER,其中第一個數字是表B的ID提前

感謝

+0

從tableB的輸出我沒有看到TableA中與字段1 ID相配。你有沒有粘貼錯誤的輸出。你能粘貼想要的輸出嗎? – DevelopmentIsMyPassion

+0

這是我期望的輸出 – ManuParra

+1

這個**應該是答案,但是如果您連接了ID和一些數字以獲得Field1,那麼您就會遇到結構性問題。而那些認爲這樣做的好主意的人應該被暴力打擊。 'SELECT TableB.ID,TableB.Name FROM TableB INNER JOIN TableB.ID = TableA.Field1' – SQLMason

回答

0

你可以試試這個:

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

基本上你發現其中 - 在表和在開頭和該短劃線之間獲取一個字符串,然後加入第二個表中的列。

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

MySQL沒有內置的CHARINDEX()函數。 SQL服務器,但問題標記爲MySQL。 – BWS

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

好!也很好 – ManuParra