lets run crooked car company. let's have following table: car_engine_mileage_counters
join table car_engines
onto mileage_counters
storing calculated field of mileage
lets encode coefficient @ engine block level in factory on engine template
.
update car_engine_mileage_counters set mileage = mileage_counters.mileage * coefficients.coefficient car_engines inner join engine_templates on car_engines.template_id = engine_templates.id inner join mileage_counters on mileage_counters.id = car_engine_mileage_counters.mileage_counter_id inner join mileage_counter_templates on mileage_counter.template_id = mileage_counter_templates.id inner join coefficients on coefficients.mileage_counter_template_id = mileage_counter_templates.id coefficients.engine_template_id = engine_template.id , car_engines.id = car_engine_mileage_counters.engine_id;
this (clearly fictitious) example fails with:
error: invalid reference from-clause entry table "car_engine_mileage_counters" line 7: on mileage_counters.id = car_engine_mileage_counters... ^ hint: there entry table "measure_instances_question_instances", cannot referenced part of query.
enumerating tables in single from
clause, , using where and
in place of inner join
s works fine.
my question is, why? wrong inner join query? how can fix it? matter?
update cem set mileage = mileage_counters.mileage * coefficients.coefficient car_engine_mileage_counters cem inner join car_engines on car_engines.id = cem.engine_id inner join engine_templates on car_engines.template_id = engine_templates.id inner join mileage_counters on mileage_counters.id = cem.mileage_counter_id inner join mileage_counter_templates on mileage_counter.template_id = mileage_counter_templates.id inner join coefficients on coefficients.mileage_counter_template_id = mileage_counter_templates.id coefficients.engine_template_id = engine_template.id , car_engines.id = cem.engine_id;
Comments
Post a Comment