1
这个问题让人讨厌,因为我还没有在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
)
*编辑* 得到这个代码的基础上拉维·辛格的答案工作。我遇到了另一个问题。 如果在teacher_teams中有两位教师与其相关(如果有),我的转发器会输出两次队伍。有没有什么办法可以合并这些,而不需要在中继器内部建立中继器?
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
这不是加盟的水平。 我的团队<-> Team_Teacher <->老师关系做同样的事情 – GentlemenFinn
@GentlemenFinn:这有帮助吗? –
我转过身来,因为团队是我的主桌。 但它的工作是=)我不知道我可以抓住每一张我想通过内部加入中间表的表。 – GentlemenFinn