今天在做项目的过程中遇到一个sqlalchemy查询的小问题,记录下来供自己以后参考
数据表结构大概如下
以上是简单的数据表
给定参数
- 家政公司的id数组 例如 [1,2,3,8,20]
- 家政服务的类别名称,如 "保姆"
现要求查出有“保姆”这项技能的员工类别,以及单位收费
一开始写了老久老是出错,后来直接写了一sql看看思路是否正确
先是直接无脑外连接
SELECT
*
FROM
homeKeep_staff AS s1,
homeKeep_staff_homeKeep_type AS st1,
homeKeep_type AS t1
WHERE
s1.homeKeep_id in (1) and
s1.id = st1.homeKeep_staff_id
AND t1.id = st1.homeKeep_type_id
and t1.name='保姆';
这个用sqlalchemy写很简单
homeKeep_id = (1,)
homeType_name = '保姆'
s1 = aliased(HomeKeep_staff, name='s1')
st1 = aliased(HomeKeep_staff_