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

Untitled

By: a guest on May 6th, 2012  |  syntax: None  |  size: 1.35 KB  |  hits: 14  |  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. For each row returned, also return a list of rows that match on some other columns
  2. StudentID ClassID
  3. a          1
  4. b          1
  5. c          1
  6. a          2
  7. a          3
  8. c          2
  9. b          3
  10.        
  11. StudentID  ClassID  Classmates
  12. a          1        a,b,c
  13. a          2        a,c
  14. a          3        a,b
  15.        
  16. SELECT * FROM
  17. (SELECT *, GROUP_CONCAT(StudentID)
  18. FROM enrolled GROUP BY studentID, ClassID)
  19. AS temporary WHERE temporary.StudentID=a
  20.        
  21. select e.studentid, e.classid, dt.classmates
  22. from (
  23.     select classid, group_concat(studentid) as classmates
  24.     from enrolled
  25.     group by classid
  26. ) as dt
  27. join enrolled e on e.classid = dt.classid
  28. where e.studentid = 'a'
  29.        
  30. +-----------+---------+------------+
  31. | studentid | classid | classmates |
  32. +-----------+---------+------------+
  33. | a         |       1 | a,b,c      |
  34. | a         |       2 | a,c        |
  35. | a         |       3 | a,b        |
  36. +-----------+---------+------------+
  37.        
  38. +-----------+---------+------------+
  39. | studentid | classid | classmates |
  40. +-----------+---------+------------+
  41. | b         |       1 | a,b,c      |
  42. | b         |       3 | a,b        |
  43. +-----------+---------+------------+
  44.        
  45. +-----------+---------+------------+
  46. | studentid | classid | classmates |
  47. +-----------+---------+------------+
  48. | c         |       1 | a,b,c      |
  49. | c         |       2 | a,c        |
  50. +-----------+---------+------------+