WEB2PY:使用 JOIN 但有一些条件显示来自数据库的数据

WEB2PY: Displaying data from DB with JOIN but with some condition

我的逻辑有点问题。

  1. 我有 3 个 table:db.service_requestdb.techniciandb.assigned
  2. 多个Service Request可以分配给一个Technician
  3. table db.assigned 是所有分配的 service_requestTechnician 的 ID
  4. 一起保存的地方
  5. 现在我想显示 service_request 中的所有数据,除了未分配给当前登录 Technician
  6. service_request

有人请告诉我如何进行这项工作吗?

我有的是这个,我得到所有 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)

你可以做一个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)