Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 12th, 2012  |  syntax: None  |  size: 1.42 KB  |  hits: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. SQL: INNER JOIN   NOT EXIST
  2. EnrollID     UserID     SubjID
  3. 1            1          1
  4. 2            1          2
  5. 3            1          3
  6. 4            3          1
  7. 5            7          2
  8.        
  9. StudentID     UserID     YearID
  10. 1             1          1
  11. 2             3          1
  12. 3             7          1
  13.        
  14. SubjID     SubjCode     YearID
  15. 1          English      1
  16. 2          Math         1
  17. 3          Science      1
  18.        
  19. UserID
  20. 2
  21. 3
  22.        
  23. SELECT Students.UserID
  24. FROM Students
  25. WHERE Students.YearID = 1
  26.     AND Students.UserID NOT IN (SELECT EnrollStudents.UserID
  27.                                 FROM EnrollStudents)
  28.        
  29. SELECT s.UserID
  30. FROM Students AS s
  31. LEFT OUTER JOIN EnrollStudents AS es ON s.UserID = es.UserID
  32. GROUP BY s.UserID
  33. HAVING COUNT(DISTINCT(es.SubjID)) < (SELECT COUNT(*) FROM Subjects)
  34.        
  35. select s.UserID
  36. from Students s
  37. left outer join (
  38.     select UserID
  39.     from EnrollStudents
  40.     group by UserID
  41.     having count(distinct SubjID) = 3
  42. ) a on s.UserID = a.UserID
  43. where a.UserID is null
  44.     and s.YearID = 1
  45.        
  46. SELECT
  47.       S.StudentID
  48.    FROM
  49.       ( select count(*) as YrClasses
  50.            from
  51.               Subjects
  52.            where YearID = 1 ) YrSubjects,
  53.       Students S
  54.          JOIN EnrollStudents ES
  55.             on S.UserID = ES.UserID
  56.             JOIN Subjects S
  57.                ON ES.SubjID = S.SubjID
  58.               AND S.YearID = 1
  59.    WHERE
  60.       S.YearID = 1
  61.    HAVING
  62.       count(*) < YrSubjects.YrClasses