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

KRYDS/YDRE ANVENDELSE i MySQL

Din nærmeste direkte approksimation er en joinforbindelse med en korreleret underforespørgsel som prædikat.

SELECT
   ORD.ID
  ,ORD.NAME
  ,ORD.DATE
  ,ORD_HISTORY.VALUE
FROM
  ORD
INNER JOIN
  ORD_HISTORY
    ON  ORD_HISTORY.<PRIMARY_KEY>
        =
        (SELECT ORD_HISTORY.<PRIMARY_KEY>
           FROM ORD_HISTORY
          WHERE ORD.ID = ORD_HISTORY.ID
            AND ORD.DATE <= ORD_HISTORY.DATE
       ORDER BY ORD_HISTORY.DATE DESC
          LIMIT 1
        )

I dit tilfælde behøver du dog kun ét felt fra måltabellen. Det betyder, at du er i stand til at bruge den korrelerede underforespørgsel direkte i SELECT-sætningen.

SELECT
   ORD.ID
  ,ORD.NAME
  ,ORD.DATE
  ,(SELECT ORD_HISTORY.VALUE
      FROM ORD_HISTORY
     WHERE ORD.ID = ORD_HISTORY.ID
       AND ORD.DATE <= ORD_HISTORY.DATE
  ORDER BY ORD_HISTORY.DATE DESC
     LIMIT 1
   )   AS VALUE
FROM
  ORD


  1. ude af stand til at kopiere database ved hjælp af SQLiteAssetHelper-klassen

  2. Komprimer en specifik partition i en tabel i SQL Server (T-SQL)

  3. Top 5 fordele ved at migrere til Azure SQL Database

  4. mysql vælge int som valuta eller konvertere int til valutaformat?