Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nakładające się okresy MySQL w oparciu o kryteria

Jeśli dobrze rozumiem Twój problem, potrzebujesz lewego sprzężenia zamiast wewnętrznego sprzężenia -

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobieranie identyfikatora ostatniej wstawki pokazuje zły numer

  2. Utwórz dowiązanie symboliczne dla biblioteki libmysqlclient.18.dylib

  3. Top 10 graczy z najwyższą średnią odbijania

  4. MySQL:Uporządkuj według rozmiaru/długości pola

  5. W jaki sposób MySQL określa, kiedy pokazywać jawne wartości zestawu znaków i sortowania?