I am trying to convert rows to columns, i have sql data like below
And I want to display obtained marks for next exam in second column in front of same subject for every student. like below Thanks in Advance.
I am trying to convert rows to columns, i have sql data like below
And I want to display obtained marks for next exam in second column in front of same subject for every student. like below Thanks in Advance.
Thanks Everyone, Its solved by left join.
SELECT
sm.`student_id`, sm.`subject_id`, s.`name` AS subject_name, sm.`marks_obtained` AS e_11 , e2.`marks_obtained` AS e_14
FROM
ims_studentmarks sm INNER JOIN ims_subject s ON s.`id` = sm.`subject_id`
LEFT JOIN ims_studentmarks e2 ON e2.`subject_id` = sm.`subject_id` AND e2.`student_id` = sm.`student_id` AND e2.`exam_id` = 14
WHERE sm.`exam_id` = 11
AND sm.student_id IN (1789)
To convert line (row) to columns, use this code:
SELECT my_column_id,GROUP_CONCAT(my_column_name)
FROM my_table
GROUP BY my_column_id as All_Columns_Name_Asign_to_Column_id