sql >> Database >  >> RDS >> Mysql

MySQL overlappende tijdsperioden op basis van criteria

Als ik je probleem goed begrijp, heb je een left join nodig in plaats van een inner join -

SELECT a.id, GROUP_CONCAT(b.id) AS abcd
FROM new_table a
LEFT JOIN new_table b ON a.id <> b.id
                      AND a.Block_ID = b.Block_ID
                      AND a.Block_Type = b.Block_Type
                      AND a.Valid = b.Valid
                      AND ((a.Valid_To BETWEEN b.Valid_From AND b.Valid_To)
                            OR (a.Valid_From BETWEEN b.Valid_From AND b.Valid_To)
                            OR (a.Valid_To = b.Valid_From)
                            OR (a.Valid_From = b.Valid_To)
                          )
GROUP BY a.id;



  1. HTML-formulier verbinden met php-pagina volgens primaire sleutel

  2. Wat is een uitschieter bij een zoekopdracht en hoe u deze kunt oplossen?

  3. Waar stel ik de tekencodering in een Java Swing-toepassing in zodat ik Hindi naar een MySQL-database kan schrijven?

  4. Werkt de zoekoperator voor woordgroepen <-> met JSONB-documenten of alleen relationele tabellen?