Mysql
 sql >> Base de données >  >> RDS >> Mysql

Valeur de colonne de sélection externe dans la sous-requête jointe ?

Votre requête interne est une sous-requête corrélée, mais elle ne peut pas du tout voir table1. Ceci est une restriction sur MySQL - voir Manuel MySQL - D. 3. Restrictions sur les sous-requêtes . À mi-chemin, il indique :

Bien que la sous-requête fasse partie d'une expression LEFT JOIN, elle fait partie de la clause FROM.

Cette reformulation pourrait faire l'affaire pour vous :

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