Въпреки че не е ясно какво точно възнамерявате с изявлението "използвайте тригер за създаване на външен ключ", текущият ви проблем е, че SELECT INTO не може да се използва в заявки, които връщат повече от един резултат.
SELECT 1 INTO has_row FROM teacher INNER JOIN content ON content.teacher_id=teacher.teacher_id; връща ВСЯКО съвпадение между двете таблици.
Ако се опитвате да проверите дали teacher съдържа teacher_id стойност, която се използва в новото content запис, просто трябва да можете да премахнете клаузата JOIN напълно и просто да направите заявка така:
SELECT 1 INTO has_row FROM `teacher` WHERE `teacher_id` = NEW.`teacher_id`;