Uw innerlijke query is een gecorreleerde subquery, maar kan tabel1 helemaal niet zien. Dit is een beperking op MySQL - zie MySQL-handleiding - D. 3. Beperkingen op subquery's . Ongeveer halverwege staat:
Hoewel de subquery deel uitmaakt van een LEFT JOIN-expressie, maakt deze deel uit van de FROM-component.
Deze herformulering zou het werk voor u kunnen doen:
SELECT table1.id,
(SELECT COUNT(*)
FROM table2
WHERE table2.lt > table1.lt
AND table2.rt < table1.rt) AS cnt
FROM table1;