create view foo as select session_id, start_session, end_session, user_id from bar; #### SELECT DISTINCT foo.user_id AS user, foo.session_id AS session1, bar.session_id AS session2, foo.start_session AS start1, bar_.start_session AS start2, foo.end_session AS end1, bar_.end_session AS end2 FROM foo,bar WHERE foo.user_id != bar_.user_id AND bar_.start_session >= foo.start_session AND bar_.start_session <= foo.end_session AND foo.session_id != bar_.session_id order by start1 ASC;