标签 "left join" 下的文章

问题:sqlalchemy的outerjoin外表时需要添加条件,使用filter过滤会到where中,而不是在on语句中

解决:使用and_

方法:

offset_num = (page - 1) * pagesize
q = select(
    User.uid, User.username, User.fullname, User.national_id, User.phone,
    User.gender, User.last_login, User.status, User.create_time,
    func.group_concat(UserRole.role_id).label('role_ids')).outerjoin(
    UserRole, and_(User.uid == UserRole.user_uid,
    UserRole.is_delete == obj_get['is_delete'])).filter(
    User.is_delete == obj_get['is_delete']).group_by(
    User.uid).offset(offset_num).limit(pagesize)
r = await db.execute(q)
return r.all()

阅读全文