Hoewel het niet duidelijk is wat u precies van plan bent met de uitspraak "gebruik trigger om een externe sleutel te maken", is uw huidige probleem dat SELECT INTO kan niet worden gebruikt in zoekopdrachten die meer dan één resultaat opleveren.
SELECT 1 INTO has_row FROM teacher INNER JOIN content ON content.teacher_id=teacher.teacher_id; geeft ELKE overeenkomst tussen de twee tabellen terug.
Als je probeerde te controleren of teacher bevat de teacher_id waarde die wordt gebruikt in de nieuwe content record, je zou de JOIN-component gewoon volledig moeten kunnen laten vallen en een zoekopdracht als volgt kunnen uitvoeren:
SELECT 1 INTO has_row FROM `teacher` WHERE `teacher_id` = NEW.`teacher_id`;