2013-04-16 54 views
-2

我想我在這裏有一點點 - 真的很感謝任何幫助! :)使用mysql中不同表格的值填充外鍵列

我有兩個MySQL的數據庫的兩個表:

Database A.Table A 
id (int) 
name (varchar) 

Database B.Table B 
id (int) 
name (varchar) 
foreign key1 (int) 
foreign key2 (int) 

我想作一個MySQL查詢像SELECT * FROM,這樣的結果仍然是正確的,即使一些額外的列稍後添加。但是,我希望將表B中的外鍵替換爲表A中相應的varchar名稱。外鍵指向同一個表,但可能會有所不同,因爲它們表示某個人的位置以及他所屬的位置。

我已經試過這樣:

SELECT * FROM tblA RIGHT JOIN tblB ON tblA.id = tblB.foreignkey1 

但它添加了另一列到結果集,這是不是我想要的目的。

當查詢tbl.B像這樣SELECT * FROM tbl.B(加魔法我在這裏尋找),最後的結果應該是像這樣:

*--------*----------*--------------------------*---------------------------* 
|tblB.id | tblB.name| foreign value1 from tbl.A | foreign value2 from tbl.A| 
*--------*----------*--------------------------*---------------------------* 
+0

請澄清「我想創建一個類似SELECT * FROM的MySQL查詢,以便結果仍然正確,即使稍後添加一些額外的列也是如此。」 *添加*列到表格從不影響現有的'SELECT'查詢,所以我必須理解錯誤。 – RandomSeed

+0

我的意思是,我寧願不將「選擇tbl.value作爲名稱」與所有的列,以便如果我以後再添加一列,它將自動成爲結果集的一部分:) – Fireworm

+0

我是不知道我是否理解你的問題。什麼專欄正在添加?你的輸出如何使用上面的表格? – ArchiFloyd

回答

1

你可以做這樣的事情:

SELECT tblB.id, tblB.name, tblA.* -- all fields in tblA 
FROM tblA RIGHT JOIN tblB ON tblA.id = tblB.foreignkey1 

......但這幾乎是我所能想到的。不幸的是,你必須使用SELECT *SELECT [each and every column],沒有其他選擇。