Пыха всегда с тобой

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 25 Май, 2012, 03:40:34

Страниц: [1]
Печать
Автор Тема: Удвоенная сумма при добавлении INNER JOIN  (Прочитано 177 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Kikky    ↓ 
02 Сентябрь, 2011, 12:17:02
НЕ ХУЕТА! ХУЕТА!


Карма: 2
Сообщений: 175
Сила слова: 1.14

Формирую запрос, одним из значений выборки есть сумма по одной из колонок...когда добавляю inner join ещё одной таблицы - все значение получаю нормальные, кроме суммы - она удвоенная...из таблицы, которая джоинится выборка не делается, наверное он нужен для того, чтобы какие-то колонки не попали в результат... Помогите решить проблему плз..
 
SQL
SELECT SQL_CALC_FOUND_ROWS taken_test_id,
                           taken_test_user_name,
                           taken_test_user_email,
                           taken_test_other_notes,
                           studio_name
                           AS taken_test_desired_location,
                           test_code_subject
                           taken_test_subject,
                           taken_test_user_ip,
                           Convert_tz (taken_test_start_time,
                           @@session.time_zone, '+7:00') AS
                           taken_test_start_time,
                           Timediff(taken_test_end_time, taken_test_start_time)
                           AS duration,
                           test_name,
                           taken_test_result_status,
                           IF (tts_status IS NULL, 'NOT CORRECTED', tts_status)
                           AS test_corrected,
                           SUM(tts_points)
                           AS test_total_score,
                           applicant_id,
                           IF (ttsf_id IS NULL, 0, 1)
                           AS has_solution_file
FROM   taken_tests
       INNER JOIN tests
         ON taken_test_test_id = test_id
       LEFT JOIN taken_tests_statuses
         ON taken_tests_statuses.tts_taken_test_id = taken_test_id
       LEFT JOIN taken_tests_scores
         ON taken_tests_scores.tts_taken_test_id = taken_test_id
       INNER JOIN test_codes
         ON test_code_id = taken_test_test_code_id
       LEFT JOIN studios
         ON studio_id = test_code_studio
       INNER JOIN languages
         ON languages.language_id = taken_tests.taken_test_language_id
       LEFT JOIN applicants
         ON test_code_applicant_id = applicant_id
       LEFT JOIN taken_tests_solution_files
         ON taken_test_id = ttsf_taken_test_id
       INNER JOIN studios_tests_correctors
         ON stc_studio_id = test_code_studio
            AND stc_test_id = test_id
            AND stc_corrector_id = 122
WHERE  1 = 1
       AND test_code_studio IN ( 7 )
       AND taken_test_end_time != '0000-00-00'
GROUP  BY taken_test_id
ORDER  BY taken_test_start_time DESC
LIMIT  0, 25
Спустя 1 минуту 12 секунд добавил
я имею ввиду последний джоин таблицы `studios_tests_correctors`
Записан

Уроки по PHP и не только!
Kikky    ↓ 
02 Сентябрь, 2011, 01:44:37 , спустя 1 час 27 минут 35 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 2
Сообщений: 175
Сила слова: 1.14

нужно было добавить ещё одно условие в джоин = )
Записан

Уроки по PHP и не только!
Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd