Here some progress : https://github.com/web2py/pydal/issues/521
Le mercredi 8 avril 2015 08:40:26 UTC-4, Lieven Van Acker a écrit :
>
>
> Hello all,
>
>
> I'm trying to perform a double left join, but can't seem to figure out the
> right syntax. Maybe someone could shed some light...
>
>
> This is what should be the resulting MySQL syntax:
>
>
> SELECT *
> FROM
> OnResource
> LEFT JOIN Contact Owner ON Owner.id = OnResource.Contact
> LEFT JOIN Contact Proxy ON Proxy.id = OnResource.Proxy
> ORDER BY
> Owner.LastName, Owner.FirstName
>
>
>
>
> I tried this DAL select syntax
>
>
> timesheet_owners = db().select(db.OnResource.ALL,
> db.Contact.with_alias('Owner').ALL,
> db.Contact.with_alias('Proxy').ALL,
> left=[db.Contact.with_alias('Owner').on(db.Contact.id ==
> db.OnResource.Contact),
> db.Contact.with_alias('Proxy').on(db.Contact.id ==
> db.OnResource.Proxy)],
> orderby=db.Contact.with_alias('Owner').LastName +
> db.Contact.with_alias('Owner').FirstName)
>
>
>
> But this results in following MySQL Query:
>
>
> SELECT
> OnResource.id, OnResource.Contact, OnResource.Proxy, OnResource.Manager,
> OnResource.CID, OnResource.UserID, OnResource.Category,
> OnResource.Department, OnResource.ResourcePool, OnResource.StartDay,
> OnResource.EndDay, OnResource.JobDescription,
> OnResource.EducationDegree, Owner.id, Owner.Title, Owner.Gender,
> Owner.FirstName, Owner.LastName, Owner.EMail, Owner.ContactLocation,
> Proxy.id, Proxy.Title, Proxy.Gender, Proxy.FirstName, Proxy.LastName,
> Proxy.EMail, Proxy.ContactLocation
> FROM
> OnResource
> CROSS JOIN Contact
> LEFT JOIN Contact AS Owner ON (Contact.id = OnResource.Contact)
> LEFT JOIN Contact AS Proxy ON (Contact.id = OnResource.Proxy)
> ORDER BY
> CONCAT(Owner.LastName,Owner.FirstName)
>
>
> Could you please advise how to get rid of the cross join?
>
> Thanks,
>
> Lieven
>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.