Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Äußerer Auswahlspaltenwert in verbundener Unterabfrage?

Ihre innere Abfrage ist eine korrelierte Unterabfrage, aber sie kann table1 überhaupt nicht sehen. Dies ist eine Einschränkung für MySQL - siehe MySQL-Handbuch - D. 3. Einschränkungen für Unterabfragen . Ungefähr auf halber Höhe heißt es:

Obwohl die Unterabfrage Teil eines LEFT JOIN-Ausdrucks ist, ist dies Teil der FROM-Klausel.

Diese Neuformulierung könnte die Arbeit für Sie erledigen:

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