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

SQL-selv-join for at returnere specifikke rækker

SELECT  mm.*, md.label AS standardized_label
FROM    mytable md
LEFT JOIN
        mytable mc
ON      mc.parent_element = md.id
        AND mc.client = @client
JOIN    mytable mm
ON      mm.id = COALESCE(mc.id, md.id)
WHERE   md.client IS NULL

Opret et indeks på (client, parent_element) for at dette fungerer hurtigt.

Se SQLFiddle .




  1. Vedvarende login PHP og SQL

  2. JPA flush vs commit

  3. Forståelse og læsning af PostgreSQL-systemkataloget

  4. Hvordan man fremskynder SELECT .. LIKE-forespørgsler i MySQL på flere kolonner?