Mysql
 sql >> Database >  >> RDS >> Mysql

Valore esterno della colonna di selezione nella sottoquery unita?

La tua query interna è una sottoquery correlata, ma non può affatto vedere table1. Questa è una restrizione su MySQL - vedere Manuale MySQL - D. 3. Restrizioni alle sottoquery . Circa a metà dice:

Sebbene la sottoquery faccia parte di un'espressione LEFT JOIN, questa fa parte della clausola FROM.

Questa riformulazione potrebbe fare al caso tuo:

SELECT table1.id, 
       (SELECT COUNT(*)
        FROM table2
        WHERE table2.lt > table1.lt
        AND table2.rt < table1.rt) AS cnt
FROM table1;