2013-12-06 4 views
0

Всякий раз, когда я использую функцию AVG() в mysql, она всегда возвращает значение или null. Это означает, что даже результата нет, он все равно вернет строки как null.Функция SQL avg() всегда возвращает true (null)

Вот команда SQL Я использую:

 
SELECT teams.id, AVG(players.skill) AS "rating", teams.name, credit, date, leagues.name AS "league_name" 
FROM (teams) 
LEFT JOIN leagues ON leagues.id = teams.league 
LEFT JOIN players ON teams.id = players.team 
WHERE manager = '20' 
LIMIT 1 

Как вы можете видеть, я выбрать, где manager идентификатор равен 20, этот менеджер не существует, и она по-прежнему возвращает строки нулевой.

Я вижу много этого, но я не могу найти нитку, которая мне помогает.

+0

У вашего запроса должна быть группа. из какой таблицы является диспетчер столбцов? –

+0

Это от команд. И почему и как я должен группировать by()? – andershagbard

ответ

1

Попробуйте этот путь:

SELECT teams.id, 
     teams.name, 
     credit, 
     date, 
     leagues.name AS "league_name", 
     AVG(players.skill) AS "rating" 
    FROM teams 
    LEFT JOIN leagues ON leagues.id = teams.league 
    LEFT JOIN players ON teams.id = players.team 
WHERE teams.manager = '20' 
GROUP BY teams.id, 
     teams.name, 
     credit, 
     date, 
     leagues.name 
LIMIT 1 

GROUP BY оператор используется в сочетании с агрегатными функциями (макс, мин, ср, и т.д.) в группе множества результатов с помощью одного или более столбцов.

+0

Спасибо, что работает! – andershagbard

+0

Не забудьте принять ответ :) –

Смежные вопросы