Dựa trên nhận xét của bạn rằng trang1, trang2 .. là các cột khóa ngoại, tôi nghĩ nó đơn giản.
Một cái gì đó như:
SELECT
s.unique_id, s.counter, s.sequence_length, s.yearmonth,
s.mod_date_stamp,
pg1.page_url as page1, pg2.page_url as page2,
pg3.page_url as page3, pg4.page_url as page4,
pg5.page_url as page5
FROM
session s
LEFT JOIN
sessionpage pg1 ON pg1.unique_id = s.page1
LEFT JOIN
sessionpage pg2 ON pg2.unique_id = s.page2
LEFT JOIN
sessionpage pg3 ON pg3.unique_id = s.page3
LEFT JOIN
sessionpage pg4 ON pg4.unique_id = s.page4
LEFT JOIN
sessionpage pg5 ON pg5.unique_id = s.page5
Tôi nghĩ cái này sẽ có hiệu quả.
Nhưng khi không có giá trị trên cột (trên phiên bảng), bạn nên sử dụng null thay vì 0 (không).
Một mẹo khác, trên câu lệnh SELECT, nếu bạn không muốn giá trị NULL, bạn có thể sử dụng:
COALESCE(pg5.page_url, ' ') as page5