Here is what I currently have which returns 3 columns for patient_id, group_concat_1, and group_concat_2:
SELECT patient_id, (SELECT GROUP_CONCAT(column1) FROM table1 where patient_id = patient.id ) group_concat_1, (SELECT GROUP_CONCAT(column1) FROM table2 where patient_id = patient.id ) group_concat_2 FROM patient
However, I need to return a single column with group_concat_1 and group_concat_2 combined, so I tried this:
SELECT patient_id, SELECT CONCAT(group_concat_1, group_concat_2) FROM ( (SELECT GROUP_CONCAT(column1) FROM table1 where patient_id = patient.id ) group_concat_1, (SELECT GROUP_CONCAT(column1) FROM table2 where patient_id = patient.id ) group_concat_2 ) FROM patient
But his clearly doesn’t work since now it can’t find patient.id in the inner subquery. Any advice? Thanks!
Advertisement
Answer
You can concatenate directly the 2 columns:
SELECT p.patient_id, CONCAT( (SELECT GROUP_CONCAT(column1) FROM table1 where patient_id = p.patient.id), (SELECT GROUP_CONCAT(column1) FROM table2 where patient_id = p.patient.id) ) FROM patient p