sql >> Databasteknik >  >> RDS >> Mysql

Få N antal poster från underordnad tabell för varje överordnad post i en MySQL-vy

Om du behöver skapa en VIEW kan du använda något i stil med detta:

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

Jag betraktar fältdata som en VARCHAR-kolumn, så vi måste använda STR_TO_DATE, om det inte är det kan vi bara jämföra c1.date med c2.date direkt.

Se fiolen här .



  1. foreach loop:Använder alla kärnor i R (särskilt om vi skickar sql-frågor inuti foreach loop)

  2. Hur får jag MySQL-tabellstrukturen i PHP? Plus en lista över alla bord?

  3. Vänster gå med, summera och räkna gruppera efter

  4. Python, konvertera 4-byte char för att undvika MySQL-fel. Felaktigt strängvärde: