sql >> Database >  >> RDS >> Mysql

Binnen groep bestellen op?

SELECT  c.*, p.*
FROM    clients AS c
JOIN    programs AS p
ON      p.id = 
        (
        SELECT  pi.id
        FROM    programs AS pi
        WHERE   pi.client_id = c.id
        ORDER BY
                pi.close_date=0 DESC, pi.close_date DESC
        LIMIT 1
        )

Ga dan naar @Quassnoi . Zie zijn antwoord in een vergelijkbare (maar ingewikkelder) vraag:mysql-groep-op-om-laatste-resultaat weer te geven

Als u de programs bijwerkt tabel en stel close_date in voor alle records is het nul tot close_date='9999-12-31' , dan uw ORDER BY zal eenvoudiger zijn (en de hele zoekopdracht sneller met de juiste indexen):

        ORDER BY
                pi.close_date DESC


  1. Heb ik een php mysql-verbinding nodig in elke functie die database gebruikt?

  2. ExecuteNonQuery:verbindingseigenschap is niet geïnitialiseerd.

  3. Hoe maak je een FULLTEXT-index op meerdere kolommen?

  4. Voer productanalyses uit met behulp van SQL Server Full-Text Search. Deel 1