А для чего такое условие?
Опишите логику, которая предполагает, что что-то джойнить нужно только если есть данные.
Если не нужны лишние строки, то всегда можно сделать условие вида
where t2.id is not null и тогда будут отданы только те строки, у которых есть связь со второй таблицей (либо делать просто join).
Меня интересует теоретическая часть, реально ли так сделать.
Бывает, что в таблице в колонке, если не 0, то нужно делать второй запрос ниже на получение данных из второй таблицы. При том, что это нужно очень редко и делать каждый раз LEFT JOIN на не особо то и нужную таблицу думаю лишнее. Особенно, когда строк более 300 тысяч.
Макс Васильев, так если джойнить нечего, то это не создаст какую-то лишнюю нагрузку. Явного алгоритма по выполнению джойна, если есть записи - нет. Можно только через промежуточные таблицы попытаться заморочится, но это будет требовать еще больше ресурсов, чем через left join.