Как я могу добавить второе соединение, которое вычисляет AVG к этому запросу? - PullRequest
0 голосов
/ 28 ноября 2011

У меня есть запрос, который объединяет две таблицы и подсчитывает общее количество во второй таблице по идентификатору песни.

Как я могу изменить этот запрос, чтобы включить среднее значение столбца «рейтинги» в снова третья таблица ($ sTable3) с тем же идентификатором песни.

    $sQuery = "
        SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."

    FROM $sTable b 
    LEFT JOIN (
   SELECT COUNT(*) AS projects_count, a.songs_id

   FROM $sTable2 a
   GROUP BY a.songs_id
) bb ON bb.songs_id = b.songsID


        $sWhere
        $sOrder
        $sLimit
    ";

Все это помещено в массив JSON, и я хотел бы вернуть это «среднее» под рейтингом нового столбца.'.

Подводя итог (насколько мне известно, я не могу сформулировать это хорошо): -

У меня есть три таблицы: $ sTable, $ sTable2, $ sTable3.Все три имеют общий столбец songID.Мой текущий запрос объединяет первые два и возвращает все результаты именно так, как я хочу.Однако мне нужно также получить данные, относящиеся к songID, из столбца 'rating' в $ sTable3.

1 Ответ

1 голос
/ 28 ноября 2011

Пришлось угадать много вашей проблемы, так как вы мало что рассказываете о настройке, только некоторые (необъяснимо загадочные) переменные.

SELECT songs.title, AVG(ratings.rating), COUNT(something.songs_id)
FROM songs
LEFT JOIN something ON (songs.songs_id=something.songsID)
LEFT JOIN ratings ON (songs.songs_id=ratings.songsID)
GROUP BY songs.title
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...