2017-03-03 54 views
1

我正在研究这个教授系统,其中教授表存储主题ID,职业和主题存储在他们自己的表中,并且我拥有career_subject关联实体,因为系统假定相同的主题可能属于几个职业。这些表是这个样子:使用关联实体过滤值的SQL查询

  • CAREER(ID,姓名,配额)
  • 主体(ID,姓名,EXAM_DATE)
  • 教授(ID,姓名,subject_id)
  • CAREER_SUBJECT(career_id, subject_id)

那么,我如何获得教授使用SQL教授的职业名称呢?

我试图用

SELECT name FROM career 
    INNER JOIN career_subject ON career_subject.subject_id = career_subject.subject_id 
    WHERE professor.subject_id = subject.id; 
+1

人们下投票的问题,因为你还没有尝试。请记住,SO不是代码写入服务。如果你在SQL查询中提供了一个体面的尝试,有人可能会帮助它修复 –

+2

,谢谢你的建议! – Nelson

回答

2
SELECT p.name as 'Professor', c.name as 'Career' FROM professor p 
    INNER JOIN career_subject cs ON cs.subject_id = p.subject_id 
    INNER JOIN career c ON c.id = cs.career_id 
+0

另请注意,您应该使用您正在使用的SQL的特定风格来标记问题。我在我的答案中假定了MSSQL,但是您可能正在使用其他的东西,所以您可能需要相应地调整语法。 –

+0

如果您想要ANSI SQL答案,只需从列别名中删除单引号即可。 (ANSI SQL有分隔标识符的双引号,例如'“Professor”'也许会被MS SQL Server接受。) – jarlh

+0

就像一个魅力,谢谢你们两个! – Nelson