как сгенерировать журнал оценки учащихся из 3 таблиц — студент, отметка, тема

#php #mysql #sql #database #report

#php #mysql #sql #База данных #Сообщить

Вопрос:

У меня есть четыре таблицы
1.студент — он содержит имя идентификатора и т.
Д. 2.метки — он содержит markid, student_id, batch, class, section, subject_id, exam_id, obt_mark
3.таблица subject — она содержит sub_id, sub_name
4. exam_type- examtype_id, exam_name

мне нужна книга отметок для пакета-2014, класс = 5, раздел = 1, exam_id = 3, как показано ниже-

 ИМЯ БРОСКА НЕТ SUB1 SUB2 SUB3 ОБЩИЙ РЕЗУЛЬТАТ ПОЗИЦИЯ РАНГ
 RAM 0054 65 54 64 183 ПРОЙДИТЕ СНАЧАЛА 2
 ХАри 0054 65 54 65 184 ПЕРВЫЙ ПРОХОД 1
гопал 0054 65 50 65 180 ПЕРВЫЙ ПРОХОД 3
сародж 0054 65 44 65 174 ПЕРВЫЙ ПРОХОД 4

Заранее спасибо .

Здесь у меня есть sql-запрос

 
ВЫБЕРИТЕ `marklists`.`mrk_sub_id1`, `marklists`.`mrk_marks`, `marklists`.`mrk_practical`,
`marklists`.`mrk_exam_type`, `students`.`id` как st_id, `students`.`st_roll`,
`students`.`st_name`, `студенты `.`партия`, `студенты`.`st_class`,
`студенты`.`st_section`, `курсы`.`идентификатор`, `классы`.`имя_класса` как имя_класса,
`курсы`.`sb_name` как имя_субъекта, `курсы`.`sb_fullmark` как full_marks,
`courses`.`sb_passmark` как pass_marks ИЗ (`marklists`)
 ЛЕВОЕ СОЕДИНЕНИЕ `classes` В `marklists`.`mrk_class` = `classes`.`id` 
ЛЕВОЕ СОЕДИНЕНИЕ `students` В `marklists`.`mrk_student_id`=`students`.`id` 
ЛЕВОЕ СОЕДИНЕНИЕ `courses` В `marklists`.`mrk_sub_id`=`courses`.`id` 
ГДЕ `marklists`.`mrk_exam_type` = '3' И `marklists`.`mrk_batch` = '3' 
И `marklists`.`mrk_class` = '1' И `marklists`.`mrk_section` = '1'

и мне нужна такая книга, как указано выше, какая-либо помощь??

Ответ №1:

Объединяйте таблицы на основе общего ключа, а для заголовков, которые вам нужны в качестве subject, вы можете использовать оператор pivot для преобразования строк в столбец и использовать предложение where для остальных условий, надеюсь, это поможет.

Комментарии:

1. Спасибо, здесь у меня есть массив результатов sql

2. Спасибо за ваш ответ в моей проблеме, я не уверен, как повернуть результирующий массив, поэтому я добавил свой sql в свой вопрос.