Även om det inte är klart exakt vad du avser med uttalandet "använd trigger för att skapa främmande nyckel", är ditt nuvarande problem att SELECT INTO kan inte användas i frågor som returnerar mer än ett resultat.
SELECT 1 INTO has_row FROM teacher INNER JOIN content ON content.teacher_id=teacher.teacher_id; returnerar VARJE matchning mellan de två tabellerna.
Om du försökte kontrollera om teacher innehåller teacher_id värde som används i det nya content record, bör du bara kunna släppa JOIN-satsen helt och bara fråga så här:
SELECT 1 INTO has_row FROM `teacher` WHERE `teacher_id` = NEW.`teacher_id`;