Skip to content Skip to sidebar Skip to footer

Outer Join Modelisation In Django

I have a many to many relationship table whith some datas in the jointing base a basic version of my model look like: class FooLine(models.Model): name = models.CharField(max_l

Solution 1:

Outer joins can be viewed as a hack because SQL lacks "navigation".

What you have is a simple if-statement situation.

for line in someRangeOfLines:
    for col in someRangeOfCols:
        try:
            cell= FooVal.objects().get( col = col, line = line )
        except FooVal.DoesNotExist:
            cell= None

That's what an outer join really is -- an attempted lookup with a NULL replacement.

The only optimization is something like the following.

matrix = {}
for f in FooVal.objects().all():
    matrix[(f.line,f.col)] = f

for line in someRangeOfLines:
    for col in someRangeOfCols:
        cell= matrix.get((line,col),None)

Post a Comment for "Outer Join Modelisation In Django"