mysql select an average from order by with a query -
i have 2 tables "recipes", "recipes_items" , in table recipes_items have integer columns "important". have query pulls recipes ordered sum(important) of recipes_items.important
, order have sub query :
(select sum(...) recipes_items...) desc)
but want retrieve additional column in recipes query average of column "important" table recipes_items how can ?
thanks moshe
select recipes.recipename, recipes.recipeid, avg (recipes_items.importance) averagescore recipes,recipes_items recipes_items.recipeid=recipes.recipeid order ( select sum(recipes_items.importance) sumimportance recipes_items recipes_items.recipeid = recipes.recipeid , recipes_items.itemid in ('1059') ) desc limit 20
what in results order importance column recipes_items.itemid matching set of id's in 'in()' section, wanted have number or sum of matching id's in each row of matching id's recipes_items.itemid
...
you don't show full query can without subquery , still include average:
select recipes.id, recipes.name, avg(recipes_items.important) recipes left join recipes_items on (recipes.id = recipes_items.recipe_id) group recipes.id order sum(recipes_items.important) desc
Comments
Post a Comment