Sử dụng array_agg:http://www.sqlfiddle.com/#!1/5099e/1
SELECT s.name, array_agg(g.Mark) as marks
FROM student s
LEFT JOIN Grade g ON g.Student_id = s.Id
GROUP BY s.Id
Nhân tiện, nếu bạn đang sử dụng Postgres 9.1, bạn không cần phải lặp lại các cột trên SELECT to GROUP BY, ví dụ:bạn không cần phải lặp lại tên sinh viên trên GROUP BY. Bạn chỉ có thể NHÓM THEO trên khóa chính. Nếu bạn xóa khóa chính trên học sinh, bạn cần lặp lại tên học sinh trên GROUP BY.
CREATE TABLE grade
(Student_id int, Mark varchar(2));
INSERT INTO grade
(Student_id, Mark)
VALUES
(1, 'A'),
(2, 'B'),
(2, 'B+'),
(3, 'C'),
(3, 'A');
CREATE TABLE student
(Id int primary key, Name varchar(5));
INSERT INTO student
(Id, Name)
VALUES
(1, 'John'),
(2, 'David'),
(3, 'Will');