sql >> Databáze >  >> RDS >> Mysql

Jak získat výsledky z dotazu, pokud je vybrané datum mezi dvěma daty?

User::whereHas('availabilities', function ($q) use ($dt) {
    $q->where('unavailable_start_date', '<=', $dt)
      ->where('unavailable_end_date', '>', $dt);
}, '=', 0)->get();

Takže to svým způsobem obracíme. Nastavujeme dotaz uvnitř whereMusíme najít dostupnosti, nedostupnosti, které jsou v tomto rozsahu. Dotazujeme se tedy na všechny nedostupné záznamy (svým způsobem). Poté zachytíme pouze uživatele, kteří nemají vztahy odpovídající těmto kritériím, pomocí ostatních argumentů pro whereHas ( '=', 0 ).

Takže žádní uživatelé, kteří mají tento vztah a spadají do tohoto časového rámce, nejsou vráceni, bez ohledu na to, kolik záznamů o dostupnosti mají. Pokud se některý z nich kvalifikuje, neprojde filtrem.



  1. Rozdíl mezi SQL Server a Oracle 'User'

  2. CASE .. WHEN výraz v Oracle SQL

  3. MySQL QUERY LIKE nevrací nic

  4. výpočty vzdálenosti v dotazech mysql