Этот вопрос вызывает раздражение, так как у меня еще нет возможности использовать средние таблицы в sql. Но я нахожусь в спешке, поэтому я все равно решил спросить.Извлечь данные из третьей таблицы
Я хочу объединить эти коды sql, чтобы я мог получать данные от «учителя», а также «команда» и «уровень» в том же повторителе.
Я ловлю имя из таблицы «учитель» через FK_teacher из middletable «teacher_team», который связан с моей командой таблицы через FK_team
ли это случайно можно объединить эти так я может извлечь все через один ретранслятор?
// Team <-> level relation
SELECT
team.team_id as team_id,
level.level as level,
FROM team
INNER JOIN level ON level.level_id = team.team_FK_level
WHERE team.team_FK_type = @id
// Team <-> Team_Teacher <-> Teacher relation
SELECT teacher.teacher_name as name
FROM teacher WHERE teacher.teacher_id
IN (
SELECT teacher_team.FK_teacher
FROM teacher_team
INNER JOIN team ON team.team_id = teacher_team.FK_team
WHERE team.team_FK_type = @id
)
* EDIT * получил этот код, чтобы работать на основе ответа Рави Сингх. Я столкнулся с другой проблемой. Мой повторитель выведет строку команд дважды, если к нему будут учиться два учителя (конечно). Могу ли я объединить их, не создавая репитера внутри ретранслятора?
SELECT
team.team_id as team_id,
level.level as level,
teacher_team.FK_teacher,
teacher.teacher_name as teacher
FROM team
INNER JOIN level ON level.level_id = team.team_FK_level
LEFT JOIN teacher_team on teacher_team.FK_hold = team.team_id
LEFT JOIN teacheron teacher.teacher_id = teacher_team.FK_teacher
WHERE team.team_FK_type = @id
Это не присоединяющиеся уровень. my Team <-> Team_Teacher <-> Отношение учителя делает то же самое – GentlemenFinn
@ GentlemenFinn: Это помогает? –
Я обернулся, так как команда - мой главный стол. Но это сработало да =) Я не знал, что я мог бы захватить каждую таблицу, которую я хотел, только внутренне соединив средний стол. – GentlemenFinn