Din inre fråga är en korrelerad underfråga, men den kan inte se tabell1 alls. Detta är en begränsning för MySQL - se MySQL Manual - D. 3. Begränsningar för undersökningar . Ungefär halvvägs ner står det:
Även om underfrågan är en del av ett LEFT JOIN-uttryck, är detta en del av FROM-satsen.
Denna omformulering kan göra jobbet åt dig:
SELECT table1.id,
(SELECT COUNT(*)
FROM table2
WHERE table2.lt > table1.lt
AND table2.rt < table1.rt) AS cnt
FROM table1;