sql >> Databáze >  >> RDS >> Mysql

Pomocí LEFT JOIN vyberte pouze jeden spojený řádek

SELECT  *
FROM    table1 t1
LEFT JOIN
        table2
ON      o.id = 
        (
        SELECT  o_id
        FROM    table2 t2
        WHERE   t2.c_id = t1.c_id
        ORDER BY
                t2.c_id DESC, t2.isHeadOffice DESC, t2.o_id DESC
        LIMIT 1
        )

Vytvořte index na table2 (c_id, isHeadOffice, o_id) aby to fungovalo rychle.

ORDER BY klauzule v poddotazu se může zdát nadbytečná, ale je vyžadována pro MySQL vybrat správný index.



  1. Jak získat data z různých přidružených tabulek pomocí obsahu v Cakephp?

  2. Importujte soubor CSV přímo do MySQL

  3. Převod malých dlouhých nezpracovaných hodnot Oracle na jiné typy

  4. Ukládání obchodní logiky do databáze