MySQL Error on Contact Subpanel Display ORDER BY date_start unknown column

I’m running 7.5.4 and am getting a MySQL error loading some contact records (not all). It’s a HUGE JOIN statement. Essentially it’s trying to order by date_start and getting an unknown column record error. I can fix the issue, well more a workaround than true fix if I remove the ‘sort_by’ -> ‘date_start’ line from Contacts/metadata/subpaneldefs.php (not upgrade safe but this appears to be a bug). I guess won answer it to upgrade and cross fingers lastest version fixes it but I’ve got some custom patches that can’t be handled by placing code in custom folder so everytime I upgrade it’s usually a lot of testing.

If anyone know what the patch to the code is to rectify this bug in the meantime, before I update, would greatly appreciate it. Here’s an example:

[FATAL] Error retrieving Contact list: Query Failed: (SELECT tasks.id , tasks.contact_id , tasks.assigned_user_id , tasks_cstm.close_checkbox_c , tasks.name , tasks.status , LTRIM(RTRIM(CONCAT(IFNULL(contacts.first_name,’’),’ ‘,IFNULL(contacts.last_name,’’)))) contact_name , ’ ’ contact_name_owner , ’ ’ contact_name_mod , tasks.date_modified , tasks.date_due , jt1.user_name assigned_user_name , jt1.created_by assigned_user_name_owner , ‘Users’ assigned_user_name_mod, tasks.created_by , ‘tasks’ panel_name, NULL recurring_source FROM tasks LEFT JOIN tasks_cstm ON tasks.id = tasks_cstm.id_c LEFT JOIN contacts contacts ON tasks.contact_id=contacts.id AND contacts.deleted=0

AND contacts.deleted=0 LEFT JOIN users jt1 ON tasks.assigned_user_id=jt1.id AND jt1.deleted=0

AND jt1.deleted=0 INNER JOIN contacts tasks_rel ON tasks.contact_id=tasks_rel.id AND tasks_rel.deleted=0

where ( tasks.contact_id=‘443a4d1a-08ff-27eb-bd47-58b07ca21325’) AND tasks.deleted=0) UNION ALL ( SELECT tasks.id , tasks.contact_id , tasks.assigned_user_id , tasks_cstm.close_checkbox_c , tasks.name , tasks.status , LTRIM(RTRIM(CONCAT(IFNULL(contacts.first_name,’’),’ ‘,IFNULL(contacts.last_name,’’)))) contact_name , ’ ’ contact_name_owner , ’ ’ contact_name_mod , tasks.date_modified , tasks.date_due , jt1.user_name assigned_user_name , jt1.created_by assigned_user_name_owner , ‘Users’ assigned_user_name_mod, tasks.created_by , ‘tasks_parent’ panel_name, NULL recurring_source FROM tasks LEFT JOIN tasks_cstm ON tasks.id = tasks_cstm.id_c LEFT JOIN contacts contacts ON tasks.contact_id=contacts.id AND contacts.deleted=0

AND contacts.deleted=0 LEFT JOIN users jt1 ON tasks.assigned_user_id=jt1.id AND jt1.deleted=0

AND jt1.deleted=0 INNER JOIN contacts tasks_parent_rel ON tasks.parent_id=tasks_parent_rel.id AND tasks_parent_rel.deleted=0
AND tasks.parent_type = ‘Contacts’
where ( tasks.parent_id=‘443a4d1a-08ff-27eb-bd47-58b07ca21325’) AND tasks.deleted=0 ) UNION ALL ( SELECT meetings.id , ’ ’ contact_id , meetings.assigned_user_id , NULL close_checkbox_c, meetings.name , meetings.status , ’ ’ contact_name , ’ ’ contact_name_owner , ’ ’ contact_name_mod , meetings.date_modified , NULL date_due, jt1.user_name assigned_user_name , jt1.created_by assigned_user_name_owner , ‘Users’ assigned_user_name_mod, meetings.created_by , ‘meetings’ panel_name, meetings.recurring_source FROM meetings LEFT JOIN meetings_cstm ON meetings.id = meetings_cstm.id_c LEFT JOIN users jt1 ON meetings.assigned_user_id=jt1.id AND jt1.deleted=0

AND jt1.deleted=0 INNER JOIN meetings_contacts ON meetings.id=meetings_contacts.meeting_id AND meetings_contacts.contact_id=‘443a4d1a-08ff-27eb-bd47-58b07ca21325’ AND meetings_contacts.deleted=0

where ((meetings.status !=‘Held’ AND meetings.status !=‘Not Held’)) AND meetings.deleted=0 ) UNION ALL ( SELECT calls.id , ’ ’ contact_id , calls.assigned_user_id , NULL close_checkbox_c, calls.name , calls.status , ’ ’ contact_name , ’ ’ contact_name_owner , ’ ’ contact_name_mod , calls.date_modified , NULL date_due, jt1.user_name assigned_user_name , jt1.created_by assigned_user_name_owner , ‘Users’ assigned_user_name_mod, calls.created_by , ‘calls’ panel_name, calls.recurring_source FROM calls LEFT JOIN users jt1 ON calls.assigned_user_id=jt1.id AND jt1.deleted=0

AND jt1.deleted=0 INNER JOIN calls_contacts ON calls.id=calls_contacts.call_id AND calls_contacts.contact_id=‘443a4d1a-08ff-27eb-bd47-58b07ca21325’ AND calls_contacts.deleted=0

where ((calls.status != ‘Held’ AND calls.status != ‘Not Held’)) AND calls.deleted=0 ) ORDER BY date_start asc LIMIT 0,31: MySQL error 1054: Unknown column ‘date_start’ in ‘order clause’

I forgot I modified for_activites.php in tasks module to show last modified column instead of date_start.

Solution was to add ‘alias’ => ‘date_start’ to last_modified column.