【发布时间】:2012-07-13 17:01:11
【问题描述】:
我有两个表 TabA 和 TabB。 TabA 在 DB_A 中,TabB 在 'DBX'_B 中。
现在我需要从 DBA 的 TabA 的字段中获取 DBX_B 名称,并将它们加入查询以从这两个表中提取数据。
DBA.TabA:
ID DB_Name UserName Password
-------------------------------------------
101 DBX xyz abc
DBX_B.TabB:
ID Type FirstName LastName
-------------------------------------------
101 Admin xyz abc
我需要从DBA.TabA 中拉出ID, Username, Password 并从DBX_B.TabB 中拉出Type, Firstname, LastName。但是可以从 DB_NAME 中识别要使用的第二个数据库名称,并将其与 _B'. So the 2nd database to pull from isDBA.TabA.DB_Name' + _B 之类的字符串连接。
从两者的 ID 上连接这两个表。
查询可能类似于:
SELECT DBA.TabA.ID, DBA.TabA.Username, DBA.TabA.Password,
DB2.TabB.Type, DB2.TabB.FirstName, DB2.TabB.Lastname
FROM DBA, CONCAT(DBA.TabA.DB_Name, '_B') as DB2
WHERE DBA.TabA.ID = DB2.TabB.ID
当然,我们也可以用 Join 代替 where。
这样的事情可能吗?想法?
【问题讨论】:
-
我对此表示怀疑。这并不是关系数据库的设计初衷......
-
对我来说这看起来像是一个直接查询,除了数据库名称来自表值。 :-)