Мне нужно объединить следующие три оператора SELECT в один оператор SQL:
1. SELECT TotalTime FROM Session WHERE device_uid = ${my_uid} ORDER BY StartTime DESC LIMIT 1;
2. SELECT HoursAtService FROM Service WHERE device_uid = ${my_uid} ORDER BY StartTime DESC LIMIT 1;
3. SELECT ServiceHours FROM Type WHERE type_uid = ${my_type_uid};
Предпочтительно, я хочу получить свой результат в виде одной строки со следующими полями:
Result:
----------------------------------------------------------------
uid, TotalTime, HoursAtService, ServiceHours
Я думаю, что мне, вероятно, нужно выполнить внутреннее соединение, но я не уверен на 100%, как к нему подойти. Что-то вроде:
SELECT uid, TotalTime, HoursAtService, ServiceHours FROM Device AS t1 INNER JOIN (... -> continues
Выполнить объединение между таблицами достаточно просто, но как вы подходите к объединению с несколькими предложениями WHERE для различных таблиц?
Может ли кто-нибудь показать мне, как я структурирую запрос?
РЕДАКТИРОВАТЬ - Схемы таблиц
Device:
---------------------
device_uid, type_uid, ....
Session:
---------------------
device_uid, session_uid, TotalTime, StartTime, EndTime, SessionTime
Service:
---------------------
device_uid, service_uid, StartTime, EndTime, HoursAtService
Type:
---------------------
type_uid, Name, ServiceHours