目的:將SQLalchemy查詢的多個值去重後拼接
過程:
#導包
from sqlalchemy import and_, distinct
from sqlalchemy import func
from sqlalchemy import or_
# 多表查詢
bindusers = session.query(Userinfo.UserID, Userinfo.UserNo,Userinfo.UserName,
Userinfo.Sex, Userinfo.EntryTime,
Userinfo.DeptID, Userinfo.JobID, Dept.DeptName,
Userinfo.UserStatus, Userinfo.Photo,
Job.JobName, Userbind.PrivilegeLevel,
#將查詢的值先 去重(distinct)後 拼接(group_concat),在SQLalchemy中使用方法要先使用func
func.group_concat(distinct(Cardinfo.CardNumber)), Cardinfo.CardType,
Cardtype.Content).filter(Userinfo.DeptID ==
Dept.DeptID).filter(Userinfo.JobID ==
Job.JobID).filter(Userinfo.UserID ==
Userbind.UserID).filter(Cardinfo.CardID ==
Userbind.CardID).filter(Cardtype.CardType ==
eCardinfo.CardType).filter(Userinfo.PGrpID ==
Powergroup.PGrpID).filter(BasePowermanage.PGrpID
==BasePowergroup.PGrpID).group_by(Userinfo.UserID).all()