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

Få N antal poster fra undertabel for hver overordnede post i en MySQL View

Hvis du har brug for at oprette en VIEW, kan du bruge noget som dette:

CREATE VIEW First_Four AS
SELECT c1.*
FROM
  Child_Table c1 LEFT JOIN Child_Table c2
  ON c1.ParentID = c2.ParentID
     AND (STR_TO_DATE(c1.`date`, '%m/%Y')>STR_TO_DATE(c2.`date`, '%m/%Y')
          OR (STR_TO_DATE(c1.`date`, '%m/%Y')=STR_TO_DATE(c2.`date`, '%m/%Y')
              AND c1.ID>c2.ID)
         ) 
GROUP BY
  c1.ID, c1.ParentID, c1.`Date`, c1.Data
HAVING
  COUNT(c2.ID)<4

Jeg betragter feltdataene som en VARCHAR-kolonne, så vi skal bruge STR_TO_DATE, hvis ikke, kan vi bare sammenligne c1.date med c2.date direkte.

Se venligst violin her .



  1. Indsæt CLOB i Oracle-databasen

  2. Sådan forhindrer du databasekorruption i Microsoft Access

  3. MySQL fuldtekstsøgning og SOUNDEX

  4. Mysql Beregn tidsforskel mellem tidsstempler i samme felt?