2015-07-29 3 views
0

Я уверен, что на это был дан ответ, но для жизни меня я не смог найти ответ.Подзапрос MySQL со средними значениями из другой таблицы

Если у меня есть две таблицы (gre_words и gre_link). Таблица grey_words имеет столбцы (id, word, definition), а таблица gre_link имеет столбцы (word_id, трудность).

В принципе, после каждого вопроса запись переходит в gre_link с идентификатором слова и с трудом (0, если правильно, 1 если неправильно).

Итак, теперь я хочу сгенерировать список из 5 самых сложных слов.

Я думаю, что мне нужен оператор SELECT MySQL с вложенным оператором с функцией AVG() в столбце трудности. Как мне это сделать?

ответ

0

Если я правильно понял ваш вопрос правильно, я думаю, что вам просто нужно сделать присоединиться и применить функцию avg и ограничить результат 5 самых низких средних, так что это может быть то, что вы хотите:

select 
    w.word, avg(l.difficulty * 1.0) average_correct 
from 
    gre_words w 
join 
    gre_link l on w.id = l.word_id 
group by 
    w.word 
order by 
    avg(l.difficulty * 1.0) 
limit 5 

Примечания что это исключает слова в таблице gre_words, которая не имеет соответствующих строк в таблице gre_link.