В SQL, как отобразить студента, который изучает более одного предмета? - PullRequest
2 голосов
/ 02 января 2012

Например - Имя таблицы = TABLE

StudentID | SubCode | SubName
-----------------------------
    1          M1       Math
    1          S1       Science
    1          E1       English
    2          H1       History
    3          G2       Geography
    4          M1       Math    

Можем ли мы отобразить ответ следующим образом?

studentid | SubCode | SubName
---------------------------------
    1          M1       Math
    1          S1       Science
    1          E1       English

Ответы [ 2 ]

6 голосов
/ 02 января 2012

Подзапрос IN() с предложением HAVING должен сделать это:

SELECT * 
FROM table
WHERE StudentID IN (
  SELECT 
    StudentID
  FROM table
  GROUP BY userid
  HAVING COUNT(*) > 1
)
2 голосов
/ 03 января 2012
SELECT DISTINCT T1.*
  FROM YourTable AS T1
       INNER JOIN YourTable AS T2
          ON T1.StudentID = T2.StudentID
             AND T1.SubCode <> T2.SubCode;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...