This SQL failed :
SELECT table_number.number_computed,
view_number_part2.part2_number,
AVG(table_value.field_value) AS field_value
FROM table_number
JOIN view_number_part2 ON (view_number_part2.number_part2_id =
number_part2.id)
LEFT JOIN number_part2 ON (number_part2.lot_number_id = table_number.id)
LEFT JOIN table_value ON (table_value.number_part2_id = number_part2.id)
LEFT JOIN intermediate_table1 ON (intermediate_table1.id =
number_part2.intermediate_table1_id)
LEFT JOIN intermediate_table2 ON (intermediate_table2.id =
number_part2.intermediate_table2_id)
WHERE (table_number.number_computed IN ('number1', 'number2'))
GROUP BY table_value.number_part2_id,
view_number_part2.part2_number,
table_number.number_computed,
intermediate_table2.number_part2_order,
number_part2.date
ORDER BY intermediate_table2.number_part2_order,
number_part2.date;
With error :
ERROR: missing FROM-clause entry for table "number_part2"
If I correct the query by moving the JOIN below the LEFT JOIN and it
works...
table_number containt essentially a list of number,
number_part2 a second particul added to number,
the view_number_part2 is a view (postgres view define as a web2py table)
that only purpose is to display a concatenation of number and part2_number
(I know it seems useless, but for other consideration it is essential)
table_value containt the interresting value
intermediate_table1 and 2 are there for groupby and are not important for
the problem...
One-to-one relation between number_part2 and view_number_part2 lead me
intuitively to create a join... I could workaround the problem by making a
LEFT JOIN and put it below this "LEFT JOIN number_part2 ON
(number_part2.lot_number_id = table_number.id) "
Hope it can be understand.
Richard
On Wed, May 7, 2014 at 10:44 AM, Niphlod <[email protected]> wrote:
> it's not a matter of order, it's a matter of how the select gets
> constructed in the code. I'd still like to see what query presents this
> "issue" because ideally there shouldn't be problems with the current
> implementation.
>
>
> On Wednesday, May 7, 2014 3:35:50 PM UTC+2, Richard wrote:
>
>> Yes, to me in the context of my particular select it was making issue
>> that the order was not respected. However, as a workaround I can just
>> define my join as a left join because my join was a one-one relation, but I
>> see that it could happen I could just not get the proper SQL from my web2py
>> query...
>>
>> I guess that the keyed elements in the select() should be collected in a
>> dict, so the order get loss??
>>
>> Richard
>>
>>
>> On Wed, May 7, 2014 at 4:43 AM, Niphlod <[email protected]> wrote:
>>
>>> there isn't any order defined between left and "normal" joins.
>>> the exact same select would be created either with
>>>
>>> db().select(left=[], join=[])
>>>
>>> or
>>>
>>> db().select(join=[], left=[])
>>>
>>> If that's what you're pointing, you're out of luck ^_^
>>>
>>>
>>> On Tuesday, May 6, 2014 10:19:51 PM UTC+2, Richard wrote:
>>>>
>>>> Hello,
>>>>
>>>> I just struggle more than I would with this :
>>>>
>>>> db(...).select(...,
>>>> left=[left1,
>>>> left2,
>>>> ...],
>>>> join=join)
>>>>
>>>> I would expect that the JOIN be after the LEFT JOINS in SQL generated,
>>>> since one of my left join was required to be before the join...
>>>>
>>>> Is there a reason why web2py change the order of join and left join ?
>>>>
>>>> Thanks
>>>>
>>>> Richard
>>>>
>>>>
>>>> --
>>> 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.
>>>
>>
>> --
> 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.
>
--
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.