Проблема с MySQL Join - PullRequest
       2

Проблема с MySQL Join

0 голосов
/ 17 августа 2011

Мне нужна помощь в операторе MySQL SELECT.К сожалению, это утверждение не работает правильно.Похоже, что ранжирование основано на алфавитном порядке названия школы вместо чтения_percent_proficient_and_advanced.Как мне это исправить?

SET @rank=0;
SELECT @rank:=@rank+1 as rank, 
       sy.formatted_school_name, 
       FLOOR(d.reading_percent_proficient + d.reading_percent_advanced) AS reading_percent_proficient_and_advanced 
FROM d_test_scores AS d, 
       sy_2010_2011_school_type AS sy  
WHERE sy.school_id = d.school_id 
       AND sy.school_group = 'public school'
       AND sy.school_type ='elementary' 
ORDER BY reading_percent_proficient_and_advanced DESC

Если я снимаю объединение, то это утверждение дает мне правильный рейтинг (но тогда у меня нет названий школ):

SET @rank=0;
SELECT @rank:=@rank+1 as rank,  
       d.school_id, 
       FLOOR(d.reading_percent_proficient + d.reading_percent_advanced) AS reading_percent_proficient_and_advanced  
FROM d_test_scores AS d 
ORDER BY reading_percent_proficient_and_advanced DESC;

В чем проблема с моим соединением?

Ответы [ 2 ]

1 голос
/ 17 августа 2011

Я не видел ни одного ключевого слова JOIN. Попробуйте это, может быть?

SET @rank=0;
SELECT @rank:=@rank+1 as rank, 
       sy.formatted_school_name, 
       FLOOR(d.reading_percent_proficient + d.reading_percent_advanced) AS reading_percent_proficient_and_advanced 
FROM d_test_scores d JOIN sy_2010_2011_school_type sy on sy.school_id = d.school_id 
WHERE  sy.school_group = 'public school'
       AND sy.school_type ='elementary' 
ORDER BY reading_percent_proficient_and_advanced DESC

Просто предположение.

1 голос
/ 17 августа 2011

( Предположение ) Я считаю, что рейтинг рассчитывается до того, как будет введен порядок ORDER BY. В исходном запросе просто так получилось, что ваши результаты вернулись в том порядке, который вы хотели, перед ORDER BY, и, таким образом, ранг был правильным, в расширенном запросе результаты изначально возвращаются в другом порядке.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...