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

Hvordan får man resultater fra forespørgslen, hvis den valgte dato ligger mellem to datoer?

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

Så vi vender det på en måde om. Vi opsætter forespørgslen inde i whereHas for at finde de tilgængeligheder, utilgængeligheder, der er i dette interval. Så vi forespørger efter alle utilgængelige poster (på en måde). Vi griber så kun brugere, der ikke har relationer, der matcher dette kriterium, ved at bruge de andre argumenter til whereHas ( '=', 0 ).

Så alle brugere, der har denne relation, der falder inden for denne tidsramme, returneres ikke, uanset hvor mange tilgængelighedsregistreringer de har. Hvis nogen af ​​dem kvalificerer sig, kommer de ikke igennem filteret.



  1. Hvorfor denne erklæring rs=st.executeQuery(query); er ikke excuting? Hvordan kan jeg kun vælge en tabel afhængig af input type=radio fra mysql fra to tabeller?

  2. Ineffektiv SQL-forespørgsel

  3. Stop forespørgsel via pdo

  4. er der en længdegrænse for group_concat eller en anden grund til, at det ikke ville virke på et tekstfelt