【发布时间】:2019-01-20 15:28:04
【问题描述】:
Relative SQL Alchemy 新手在这里。我创建了一个外连接对象,然后在选择查询中使用它。创建查询时,连接条件消失,产生笛卡尔积。
创建连接:
data_set = join(db.client, db.employee, isouter=True)
调试器将连接对象的值显示为:
data_set = 客户 LEFT OUTER JOIN 员工 ONemployee.id = client.account_manager_id
查询加入:
qry = select([data_set.c.client_id.label('ID'), data_set.c.client_contract_client_name.label('CONTRACT CLIENT'),
data_set.c.client_project_client_name.label('PROJECT CLIENT'),
data_set.c.client_ins_dt.label('INSERT'), data_set.c.client_update_dt.label('UPDATE'),
(data_set.c.employee_last_name + data_set.c.employee_first_name).label('ACCT MGR')]).\
order_by(data_set.c.client_contract_client_name)
调试器显示qry的SQL为:
SELECT client.id AS "ID", client.contract_client_name AS "CONTRACT 客户”,client.project_client_name 作为“项目客户”,client.ins_dt 作为“插入”,client.update_dt 作为“更新”,员工.last_name || employee.first_name AS “ACCT MGR” 来自客户、员工 ORDER BY client.contract_client_name
注意 FROM 子句。我的 JOIN 去哪儿了?
【问题讨论】:
标签: python sqlalchemy