【问题标题】:How to Select Subjects Name from table when we are using only Subject Id in table当我们仅使用表中的主题 ID 时如何从表中选择主题名称
【发布时间】:2016-10-21 04:47:57
【问题描述】:

当我们在表中仅使用主题 ID 并且我们正在使用另一个表主题主时,如何从表中选择主题名称。

Table StudentMaster
--------------------------
StudentId   int Unchecked
StudentName varchar(50) Checked
Subject1    int Checked
Subject2    int Checked
Subject3    int Checked

Sample Record
------------------------------------
ID  Name    Subject1   Subject2   Subject3
1   Mohan      1           2         4
2   Sohan      3           2         5
3   Neha       5           1         2


Table Subject
-----------------------
SubjectId   int Unchecked
SubjectName varchar(150)    Checked

Sample Record
-----------------
SubjectId        SubjectName
   1                Hindi
   2                English
   3                Physics
   4                Chemistry
   5                Maths

如何获得 Sohan、Mohan 和 Neha 选择了哪个科目???

我想要这样的结果

StudentId   StudentName   Subject1    Subject2    Subject3
    1       Mohan         Hindi       English     Chemistry
    2       Sohan         Physics     English     Maths
    3       Neha          Maths       Hindi       English

【问题讨论】:

  • 您为三个不同的数据库标记了这个问题。您实际使用的是哪一个?
  • @Rajkumar Patro,如果我的帖子解决了您的问题,请将其标记为答案,以便可以关闭问题。谢谢。

标签: mysql sql sql-server oracle


【解决方案1】:
SELECT 
S.StudentId, 
S.StudentName,
S1.SubjectName AS Subject1,
S2.SubjectName AS Subject2,
S3.SubjectName AS Subject3
FROM StudentMaster S
LEFT OUTER JOIN Subject S1
S1.SubjectId = S.Subject1
LEFT OUTER JOIN Subject S2
S2.SubjectId = S.Subject2
LEFT OUTER JOIN Subject S3
S3.SubjectId = S.Subject3
ORDER BY S.StudentId

【讨论】:

    【解决方案2】:

    试试这个:

    SELECT
        SM.StudentId,
        SM.StudentName,
        S1.SubjectName AS "Subject1",
        S2.SubjectName AS "Subject2",
        S3.SubjectName AS "Subject3"
    FROM StudentMaster SM
    LEFT JOIN Subject S1
         S1.SubjectId = SM.Subject1
    LEFT JOIN Subject S2
         S2.SubjectId = SM.Subject2
    LEFT JOIN Subject S3
         S3.SubjectId = SM.Subject3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多