/* check existing requests, new vs old terms: */
select
d1.name as 'new',
d2.name as 'old',
case when d1.name <> d2.name then 'YES' end as diff
from requests r
join ( request_report_detail rrd1 join diagnoses d1 on rrd1.diagnosis_id = d1.id )
on rrd1.request_id = r.id
join ( request_report_detail rrd2 join lims_test.diagnoses d2 on rrd2.diagnosis_id = d2.id )
on rrd2.request_id = r.id
group by d1.id
order by diff desc, d1.name
/* saves having to reset all FK's if diagnoses renamed to _diagnoses */
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS _diagnoses;
CREATE TABLE _diagnoses LIKE diagnoses;
INSERT INTO _diagnoses SELECT * FROM diagnoses;
TRUNCATE diagnoses;
INSERT INTO diagnoses SELECT * FROM lims_test.diagnoses;
SET FOREIGN_KEY_CHECKS = 1;