Comments (6)
@pwfff With.join()
has been reimplemented to use real joins now, and there is a secret parameter that you can pass to specify a LEFT OUTER JOIN. Example usage:
from django.db.models.sql.constants import LOUTER
query = cte.join(Region, name=cte.col.name, _join_type=LOUTER)
approximate SQL:
SELECT ...
FROM region
LEFT OUTER JOIN cte ON region.name = cte.name
Fair warning: this is an undocumented feature, and may change in the future. Also be careful: the join may be automatically changed to an INNER JOIN if you subsequently (after calling cte.join(...)
) do other things like add filters involving joins to the queryset.
If you're satisfied with this I think we can close #1. Let me know what you think.
from django-cte.
It works as well as the version I had, but I'm still running into this issue:
django.db.utils.ProgrammingError: invalid reference to FROM-clause entry for table "share"
LINE 1: ...LEFT OUTER JOIN "my_table" V8 ON V0."foo_id" = ("my_table"."j...
^
HINT: Perhaps you meant to reference the table alias "v8".
I'll see if I can get a simple reproduction for you.
from django-cte.
Seems to happen when doing something like Foo.objects.filter(id__in=my_joined_queryset_with_ctes)
. Everything in the subquery gets an extra alias, but it doesn't resolve.
from django-cte.
I have an attempt at a fix in #4.
from django-cte.
@pwfff Is this issue resolved now?
from django-cte.
Yes, with #4. Thank you!
from django-cte.
Related Issues (20)
- How to use in python 2 and django 1.8 HOT 1
- Mutiple CTEs Possible? HOT 2
- Muliples With joins HOT 3
- Allow non-recursive CTEs to avoid optimization fence HOT 1
- Support UNION queries that share a CTE HOT 2
- Cannot install via pipenv HOT 1
- no such table: cte while importing fixtures HOT 4
- Support Django 4.0 HOT 2
- Improve documentation HOT 3
- is there a way to select from a cte without joining it with a model? HOT 5
- Usage in the context of time series HOT 1
- Combining with django-reversion HOT 2
- Can I count all children in Queryset annotate? HOT 7
- annotate() usage in recursion HOT 5
- Unneccessary outer join breaks query HOT 1
- With(empty_qs) throws Error HOT 1
- “no such column”/“column does not exist” errors in Django 4.2 HOT 9
- Not able to do full outer join with django_cte HOT 2
- hnej
- `.update()` does not work when accessing nested tables HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-cte.