正如標題所示,我試圖在具有不同值/數據類型的列上使用INNER JOIN
。是否有可能INNER JOIN 2不同類型/值的ID?
在一個數據庫表中,我們稱之爲表A我想要執行select語句以獲取幾列(Subject,Name,Description,Date)的值。雖然我也想要一個關係名稱。然而,問題在於關係名稱(在關係表中設置,表B)作爲字符串值(D0001001)顯示在表A中 - 因此不是字面名稱。
爲了得到字面關係名,有一個表B有一個ID列1001-1000〜和一個關係'文字'名稱列的鏈接。因此,例如在表B中,ID 1001匹配公司名稱MC DONALDS,並且在表A中RelationID是D0001001(MC DONALDS)。
不要問我爲什麼表A中的RelationID與它前面的奇怪的D000一樣,我也不知道但它有一些功能。
因此回到問題。我想從表A中獲取幾個字段,但也要從表B中的字面關係名稱中匹配表A的relationID值。
所以問題是,我怎麼能INNER JOIN
這2個不同的值/類型?表A中的RelationID
是字符串類型(確切地說爲nvarchar
),並且在表B中與匹配關係名稱的ID
是Integer
類型。
我想我可以解決這個問題:
在表B(1001整數)的ID匹配部分表A的RelationID(D0001001字符串)查詢做一個LIKE語句。然而,這不起作用
做一個
REPLACE
語句通過用nothing:「」替換RelationID'D000'值。這可能仍然需要某種類型的轉換爲表A值的整數。這裏有一些錯誤可能是因爲語法錯誤。
我有什麼至今:
SELECT
TableA.subject, TableA.Name, TableA.Description, TableA.Date,
TableB.RelationName
INNER JOIN
TableB ON TableA.RelationID = TableB.ID
這返回的轉換是不可能的(串/整數)。
於是我嘗試:
SELECT
TableA.subject, TableA.Name, TableA.Description, TableA.Date,
TableB.RelationName
INNER JOIN
TableB ON TableB.ID LIKE '% TableA.RelationID %'
這並沒有工作,要麼(EOF)。
爲了使它更清楚一點我的表:
表A + ------------ + ----------- + - ---------------- + --------------------- + ----------- + | RelationID |主題|說明|名稱|日期| + ------------ + ----------- + ------------------ + ---- ----------------- + ----------- + | D0001001 |快餐|一些描述|表單填寫名稱| 13-3-2015 | | D0001002 |飲料|一些描述|表單填寫名稱| 10-3-2015 | | D0001003 |汽車|一些描述|表單填寫名稱| 7-3-2015 | + ------------ + ----------- + ------------------ + ---- ----------------- + ----------- +
表B
+------+--------------+
| ID | RelationName |
+------+--------------+
| 1001 | MC DONALDS |
| 1002 | COCA COLA |
| 1003 | MERCEDES |
+------+--------------+
- > INNER連接在ID和關係ID
任何替代品?提前致謝!
您可以使用'like'構造函數 – Sim1 2015-03-13 19:21:15
'D0009999'後的'RelationID'值是多少? – 2015-03-13 19:22:15