【发布时间】:2020-11-05 00:38:11
【问题描述】:
在我的一个项目中我遇到了在 Django 中连接来自不同数据库的两个表的需求,但还没有找到最佳解决方案。问题是我有两个数据库,它们的表相互关联,我想在两个不同数据库的表之间建立连接。 SQL 查询在 MS SQL Server 中运行良好,但如何在 Django 中执行此操作是主要问题。我想在 Django 中运行 RawSQL 查询并将其传递给 ORM。单个数据库没问题,但是两个数据库就不行了。
例如,我有两个数据库,例如带有表 CashAccount 的 DB1 和带有表 teamAccount 的 DB2。
SQL Query:
SELECT (t1.unique_name) as unique_name,
(t1.AccountBalanceAmount) AS AccountBalanceAmount,
(t2.TeamName) AS TeamName,
(t2.ProjectDesc) AS ProjectDesc,
FROM (
SELECT CONCAT(ID,'_',ProjectName) AS unique_name,
AccountBalanceAmount
FROM DB1.CashAccount
) t1
INNER JOIN (
SELECT CONCAT(ID,'_',ProjectName) AS unique_name,
TeamName
ProjectDesc
FROM DB2.TeamAccount
) t2 ON t1.unique_name = t2.unique_name
如何使用 Django ORM 执行此查询或使用 raw() 执行原始 SQL 查询?
【问题讨论】:
-
这能回答你的问题吗? Raw SQL queries in Django views
标签: sql-server django django-models django-orm