У меня есть три таблицы: sessions
, urls
и visitors
.Мне нужно объединить эти три таблицы таким образом, чтобы я мог получать данные из каждой таблицы, а максимальное количество возвращаемых строк должно быть равно сеансам.
Ниже приведена базовая схема моих таблиц.
Таблица sessions
session_id | url_id | referrer_id | country
-------------------------------------------
1234 | a1b1 | bb11 | US
4567 | x1y1 | ll33 | IN
6789 | a1b1 | ff99 | UK
Таблица urls
id | url |
-----------------------------------------
a1b1 | https://url-1.com |
x1y1 | https://url-2.com |
bb11 | https://referrer-url-1.com |
ll33 | https://referrer-url-2.com |
ff99 | https://referrer-url-3.com |
Таблица visitors
id | session_id | visiting_time |
-----------------------------------------
1 | 1234 | 447383930 |
2 | 4567 | 547383930 |
3 | 6789 | 647383930 |
Что я хочу как конечный результат должен выглядеть следующим образом: :
session_id | visiting_time | url | referrer_url | country
------------------------------------------------------------------------------------------
1234 | 447383930 | https://url-1.com | https://referrer-url-1.com | US |
4567 | 547383930 | https://url-2.com | https://referrer-url-2.com | IN |
6789 | 647383930 | https://url-1.com | https://referrer-url-3.com | UK |
Я хочу отобразить url_id
в sessions
таблице с id
в urls
таблице и получить соответствующую url
изurls
таблицы и имеют значение в новом столбце с именем url
.Аналогично, сопоставьте referrer_id
в sessions
таблице с id
в urls
таблице и получите соответствующую url
из urls
таблицы и получите значение в новом столбце с именем referring_url
.
Как вы можете видеть: СОЕДИНЕНИЕ с sessions
и visitors
является простым и может быть просто сделано с помощью:
select session_id, visiting_time, country
from sessions,
visitors
where sessions.session_id = visitors.session_id;
Но соединение с таблицей urls
и получение url
и referring_url
несколько сложно.Я пробовал LEFT JOIN
и INNER JOIN
, но не смог заставить его работать.
Любая помощь с запросом или ссылками была бы полезна.
Спасибо!