通过不相关字段链接django中的多个数据库模型
在sql中,如果有两个表的字段具有相似的数据,但没有连接在一起,则可以这样将它们链接起来通过不相关字段链接django中的多个数据库模型,django,django-models,Django,Django Models,在sql中,如果有两个表的字段具有相似的数据,但没有连接在一起,则可以这样将它们链接起来 select tab1.name, tab1.gender, tab1.occupation, tab2.location , tab2.biz_time ,tab3.address from staffdata tab1, sales tab2, address tab3 where tab1.user_id=tab2.user_id and tab3.location_id=tab2.locat
select tab1.name, tab1.gender, tab1.occupation, tab2.location , tab2.biz_time ,tab3.address
from staffdata tab1, sales tab2, address tab3 where
tab1.user_id=tab2.user_id and tab3.location_id=tab2.location_id
这会将它们链接起来,从我尝试过的3个表子查询中生成结果,
使用值进行注释,但得到错误的结果
这就是我尝试过的
code_subquery = SalesRecord.objects.filter(staff__username__iexact=request.user,
user_id=OuterRef('user_id'))
timetablevalues= StaffData.objects.filter(staff=request.user,
user_id=Subquery( code_subquery.values(
'location', 'biz_time', 'item')))\
.values('name','gender',
'location', 'biz_time', 'item')
虽然这是针对2个表的,但我以后可能会针对3个表这样做
请告诉我如何使用Django ORM进行任意连接并不容易,需要深入研究代码。如果您想做这样的事情,您应该简单地使用原始查询。但是这不会使代码暴露于sql注入吗?抱歉replyNot中的延迟,除非通过字符串连接等方式传递参数。请参阅。一般来说,原始查询是不安全的,正如开发人员所做的那样。ORM更安全,因为它正确地转义值,并使用参数化查询等。通常,当它将ORM查询转换为SQL查询时,安全做法是。@AbdulAzizBarkat与ORM相比,我如何使查询非常安全?