两个表做联合查询,从a, b表中各取一部分字段
将列表记录转为字典:
def dictfetchall(cursor):
"Return all rows from a cursor as a dict"
columns = [col[0] for col in cursor.description]
return [
dict(zip(columns, row))
for row in cursor.fetchall()
]
我这里value是传进来的参数,你可以按照需要的方式写SQL语句。
from django.db import connection
cursor=connection.cursor()
where = 'where project_name=' + "'" + value + "'"
cursor.execute('select a.name, b.age from personal a \
left join information b on a.name=b.name ' + where)
rows=dictfetchall(cursor)
实际效果看官方给的样例吧:
>>> from django.db import connection
>>> cursor=connection.cursor()
>>> cursor.execute("SELECT id, parent_id FROM test LIMIT 2");
>>> cursor.fetchall()
((54360982, None), (54360880, None))
>>> cursor.execute("SELECT id, parent_id FROM test LIMIT 2");
>>> dictfetchall(cursor)
[{'parent_id': None, 'id': 54360982}, {'parent_id': None, 'id': 54360880}]
参考:
Django之ORM执行原生sql语句
https://docs.djangoproject.com/en/3.1/topics/db/sql/ 要说专业,还是得官方文档