MySQL中以逗号分割的字段可以直接快速连表查询
SELECT a.id, GROUP_CONCAT(c.name)
FROM table1 a
LEFT JOIN (SELECT aid, GROUP_CONCAT(`cid`) AS cids FROM table2 GROUP BY `aid`) b ON a.id = b.aid
LEFT JOIN table3 c ON FIND_IN_SET(c.id, b.cids)
GROUP BY a.id;
FROM table1 a
LEFT JOIN (SELECT aid, GROUP_CONCAT(`cid`) AS cids FROM table2 GROUP BY `aid`) b ON a.id = b.aid
LEFT JOIN table3 c ON FIND_IN_SET(c.id, b.cids)
GROUP BY a.id;