python + django 多表联合查询(left join)方法求教

duty 发布于 2013/09/14 22:02
阅读 13K+
收藏 1

最近在学习python 和django,中间遇到一些问题,查了一下午资料,但是依然没有头绪,特来向请教大神!呵呵

问题如下:

有两张表,

A表字段:编号、地址

B表字段:编号(外键到A表编号)、姓名

问题:现在想要联合查询两张表,显示姓名和地址,如sql:select A.addr, B.name from B left join A on B.number = A.nember.

在django里有什么样的实现方法。

django版本:1.5


在django的模型里这样定义:

class A(models.Model):
    
    number = models.CharField(primary_key=True,max_length=30)
    addr = models.CharField(max_length=30)
    
    def __unicode__(self):
        return self.addr 

class B(models.Model):
    
    number = models.ForeignKey(A,null=False,blank=False)
    name = models.CharField(max_length=30)
    
    def __unicode__(self):
        return self.name

加载中
0
duty
duty

引用来自“晓骏”的答案

谢谢这位兄台,下午居然买查用cursor直接查,不知道django的model有没有实现多表查询呢。
最后用的这个方法:
 cursor = connection.cursor()
        cursor.execute("select B.name,A.addr from members_A as A left join members_B as B on A.number = B.number")
首席安全砖家
首席安全砖家
Djangp 自定义 sql 查询 的话,今天也正好在看这方面的资料,分享个:http://www.cnblogs.com/BeginMan/archive/2013/05/27/3101322.html
返回顶部
顶部