WEB2PY:使用 JOIN 但有一些条件显示来自数据库的数据
WEB2PY: Displaying data from DB with JOIN but with some condition
我的逻辑有点问题。
- 我有 3 个 table:
db.service_request
、db.technician
和 db.assigned
- 多个
Service Request
可以分配给一个Technician
- table
db.assigned
是所有分配的 service_request
与 Technician
的 ID 一起保存的地方
- 现在我想显示
service_request
中的所有数据,除了未分配给当前登录 Technician
的 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)
我的逻辑有点问题。
- 我有 3 个 table:
db.service_request
、db.technician
和db.assigned
- 多个
Service Request
可以分配给一个Technician
- table
db.assigned
是所有分配的service_request
与Technician
的 ID 一起保存的地方
- 现在我想显示
service_request
中的所有数据,除了未分配给当前登录Technician
的
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)