Вы смешали стили соединения и создали декартово произведение.Декартово произведение - это то, где число строк растет, потому что несвязанные строки соединяются вместе.Иногда это полезно, но обычно это не то, что требуется
В самом конце вашего оператора sql у вас есть запятая, а затем другое имя таблицы
База данных уже взяла на себя работусделал с INNER JOINed парой таблиц и затем просто соединил каждую строку из них с каждой строкой из этой таблицы
Если вы собираетесь объединить 3 таблицы вместе, используйте другой оператор внутреннего соединения
SELECT
`profile`.`name`,
`profile`.nachname,
unterichts_zeit.zeit,
unterichts_typ.typ
FROM
unterichts_zeit
INNER JOIN `profile` ON unterichts_zeit.lehrer = `profile`.id
INNER JOIN unterichts_typ ON <<fill-this-on-clause-out>>
В старые времена мы объединяли таблицы следующим образом:
SELECT *
FROM a, b, c
WHERE a.id = b.id AND b.id = c.id
Если вы не включите предложение WHERE, db будет просто выводить каждую комбинацию строк.Если бы A содержал 1 и 2, а B содержал «x» и «y», а c содержал true и false, вы бы получили:
1,x,true
1,x,false
1,y,true
1,y,false
2,x,true
2,x,false
2,y,true
2,y,false
Теперь современный эквивалент состоит в использовании INNER JOIN, и это оченьсложнее забыть предложение ON (эквивалент старого способа с использованием предложения where), потому что это синтаксическая ошибка.Но БД все еще допускает старый способ и даже позволяет смешивать.Ваше утверждение, имеющее «запятую» в конце, является смешанным стилем соединения, старым способом создания декартового произведения (пункт забытого где)