我遇到了一些逻辑问题。
db.service_request
,db.technician
和db.assigned
Service Request
可以分配到Technician
db.assigned
是所有已分配的service_request
与Technician
的ID一起保存的地方service_request
的所有数据除了service_request
之外没有分配给当前登录的Technician
有人请告诉我如何使这项工作?
我拥有的是这一点,我得到的所有service request
assigned
已登录到当前登录的Technician
,但没有得到所有其他service request
还没有assigned
。
query=db.service_request.id==db.assigns.sr_id
query2=db.assigns.technician==user_id
query4=((query)&(query2))
get_assigned=db(query4).select(orderby=~db.service_request.date_time)
答案 0 :(得分:0)
您可以执行left outer join并指定db.assigned.technician
与当前用户匹配或db.assigned
中没有匹配记录的条件:
left_join = db.assigned.on(db.service_request.id == db.assigned.sr_id)
current_user_assigned = db.assigned.technician == user_id
request_not_assigned = db.assigned.id == None
rev_request_time = ~db.service_request.date_time
rows = db(current_user_assigned | request_not_assigned).select(left=left_join,
orderby=rev_request_time)