sql >> Database >  >> RDS >> Mysql

MySQL - SELECT WHERE field IN (subquery) - Extreem traag waarom?

De subquery wordt voor elke rij uitgevoerd omdat het een gecorreleerde query is. Men kan van een gecorreleerde zoekopdracht een niet-gecorreleerde zoekopdracht maken door alles uit de subquery te selecteren, zoals:

SELECT * FROM
(
    SELECT relevant_field
    FROM some_table
    GROUP BY relevant_field
    HAVING COUNT(*) > 1
) AS subquery

De uiteindelijke vraag zou er als volgt uitzien:

SELECT *
FROM some_table
WHERE relevant_field IN
(
    SELECT * FROM
    (
        SELECT relevant_field
        FROM some_table
        GROUP BY relevant_field
        HAVING COUNT(*) > 1
    ) AS subquery
)


  1. Alle tabellen in een Postgres-database afkappen

  2. SQL-netwerkinterfaces, fout:50 - Er is een runtime-fout voor de lokale database opgetreden. Kan geen automatische instantie maken

  3. Is het mogelijk om een ​​door komma's gescheiden kolom op te vragen voor een specifieke waarde?

  4. Waarschuwing:mysqli_connect():(HY000/2002):Geen dergelijk bestand of map