sql >> Databasteknik >  >> RDS >> Mysql

Skriv ut rader med nullvärde endast om det inte finns samma rad med ett icke-nullvärde

Om du vill få det senaste för varje ItemID som motsvarar Type val, kan du göra en underfråga för att returnera det senaste priset först och sedan gå med i den ursprungliga tabellen för att visa det i slutresultatet. Nedan är exempelfrågan:

SELECT A.* 
FROM   ItemPrices A 
JOIN   ( SELECT itemid,
                TYPE,
                MAX(fromdate) AS mdt 
         FROM   ItemPrices 
         GROUP BY itemid,TYPE ) B
ON      A.itemid=B.itemid 
        AND A.type=B.type 
        AND A.fromdate=B.mdt
WHERE   A.type=1
ORDER BY A.itemid;

Du kan se demon här :https://www.db-fiddle.com/ f/7YCaiLYz9DE11wnijWEdi/3




  1. ErrorException:Indirekt ändring av överbelastad egenskap App\Answer::$attribute har ingen effekt

  2. Ta bort upprepade resultat från MySQL-fråga

  3. Stöd för MariaDB 10.4 i uppgraderad dbForge Studio för MySQL, v.8.1

  4. Problemet med förlorad uppdatering i samtidiga transaktioner