如何在django中进行左连接?

时间:2017-09-29 03:39:29

标签: python mysql django

这是我的第一个模特

class DipPegawai(models.Model):
    PegID = models.AutoField(primary_key=True)
    PegNamaLengkap = models.CharField(max_length=100, blank=True, null=True)
    PegUnitKerja = models.IntegerField(null=True,blank=True) 

这是我的第二个模特

class DipHonorKegiatanPeg(models.Model):
    KegID = models.AutoField(primary_key=True)
    PegID = models.ForeignKey(DipPegawai, blank=True,null=True)
    KegNama = models.Charfield(max_length=100,null=True,blank=True)

我想在这个模型中进行左连接,这在mysql查询中是这样的

SELECT PegNamaLengkap, KegNama_id
FROM karyawan_dippegawai AS k LEFT JOIN honorkegiatanpeg_diphonorkegiatanpeg AS h ON k.PegID = h.PegID_id
WHERE PegUnitKerja = 3
GROUP BY k.PegID

如何使用django orm进行左连接,就像上面的mysql查询一样?

2 个答案:

答案 0 :(得分:1)

应该是这样的:

print(your_var_here.query)

告诉我这是否适合你。 您可以使用lag打印原始查询。请记住将您的查询放入var

答案 1 :(得分:0)

DipHonorKegiatanPeg.objects.filter(PegID__PegUnitKerja=3).values('PegID__PegNamaLengkap', 'KegNama_id')