Я пытаюсь свести к минимуму количество запросов, сделанных в моем приложении.В этом случае мне нужно просмотреть свойства сервера чата по его идентификатору и найти любой «живой поток» из другой таблицы со связанным идентификатором сервера, который имеет значение «время начала», но значение «время окончания» равно нулю (показывая, что прямая трансляция все еще продолжается).Если текущий поток не выполняется, то значение «конечное время» не будет нулевым, но мне все еще нужны свойства этого сервера.
По существу:
Поиск свойств сервера и поиск текущегоstream:
- Если нет живого потока (нет времени окончания нуля), сделайте что-нибудь со свойствами сервера
- Иначе, Если есть живой поток (запись с нулем)время окончания), сообщите пользователю
SELECT t1.properties
FROM t1
LEFT OUTER JOIN t_streams
ON t1.serverID = t2.serverID
WHERE t1.serverID = '<id>';
... возвращает и время окончания нуля, если t2 полностью пусто, что хорошо, но все строки, если это не так, что плохо.
SELECT t1.properties
FROM t1
LEFT OUTER JOIN t_streams
ON t1.serverID = t2.serverID
WHERE t1.serverID = '<id>'
AND t2.endtime IS NULL;
... ничего не возвращает, если активный поток не активен (ни одна строка не имеет нулевого конечного времени), но в любом случае ему необходимо как минимум вернуть t1.properties.
В основном я пытаюсьсоздать новый «прямой эфир», используя «свойства сервера», если в данный момент нет активного потока.