2009-12-16 177 views
1

假設我們有兩個數據庫,一個名爲db1,另一個名爲db2。 這兩個數據庫都有一個名爲Employees的表。無論如何,即使它們具有相同的名稱,也要加入來自兩個表格的結果?從不同數據庫的同名表中加入結果

請注意,兩個表沒有衝突的字段名稱。我知道這很愚蠢,但我們必須爲現有的數據庫創建一個擴展數據庫,並保持簡單,我們希望在兩個數據庫中都有相同的表名。

幫助是極大的讚賞,感謝

而且我知道有一個在這裏回答過類似的問題,但我沒有發現它在這方面的幫助。

+0

您使用的是什麼品牌的數據庫? – 2009-12-16 15:13:59

回答

1

您應該能夠通過其完全限定的名稱來引用表。如果他們在不同的模式,你可以說:

SELECT * FROM Schema1.MyTable as T1 JOIN Schema2.MyTable as T2 ON T1.Something = T2.SomethingElse 

如果他們實際上是不同的數據庫,你需要在這種情況下,它成爲MYTABLE1 @數據庫1等數據庫鏈接

+1

非常感謝,我不知道爲什麼我嘗試使用連接時,它很簡單。豎起大拇指!感謝所有貼出來的人,但我會把這個獎給這個先發布的人,這只是我認爲的公平。 – 2009-12-16 15:15:48

0

您應該能夠通過database.owner.table引用它們,例如, db1.dbo.Employees和db2.dbo.Employees(假設表屬於dbo)

+0

是的,我試過了,但添加INNER JOIN db2.Employees後,查詢失敗立即db2.Employees.EmpId = db1.Employees.UUID 數據存在於兩個表中,因此聯接本身不應該失敗,這就是爲什麼我認爲它是使用相同表名的問題。 – 2009-12-16 15:12:59

1

是的,你絕對可以做到這一點,你只需要他們別名,像這樣:

SELECT ... FROM [db1].[dbo].[Employees] as e1 INNER JOIN [db2].[dbo].[Employees] as e2 ON ... 

然後你可以通過參考e1.MyColumne2.MyOtherColumn得到你需要的東西。

-1

SELECT *從db1,db2 where db1.employee = db2.employee這是你的意思?

相關問題