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

HQL / JPA znajdź dostępne przedmioty między zakresem dat

Widzę, że Twoje zapytanie jest poprawne.

Ale jeśli chcesz wybrać na podstawie identyfikatora samochodu, powinieneś dodać identyfikator samochodu również jako warunek do zapytania

Na przykład

SELECT b.id, b.startDate, b.endDate, b.car.id
FROM BorrowedDate b
WHERE :userDateStart NOT BETWEEN b.startDate AND b.endDate
AND :userDateEnd NOT BETWEEN b.startDate AND b.endDate
AND b.car.id = :carId

ALBO Ty też możesz to zrobić

SELECT b.id, b.startDate, b.endDate, c.id
FROM BorrowedDate b INNER JOIN b.car c
WHERE :userDateStart NOT BETWEEN b.startDate AND b.endDate
AND :userDateEnd NOT BETWEEN b.startDate AND b.endDate
AND c.id = :carId

następnie musisz przekazać :carId wartość równa 2

AKTUALIZUJ

możesz wypróbować to zapytanie SQL, jeśli chcesz uzyskać dynamiczny wynik, wkrótce zaktualizuję je za pomocą JPQL

SELECT b.id, b.startDate, b.endDate, b.car.id
FROM BorrowedDate b
WHERE '2017-04-02 00:00:00' NOT BETWEEN b.startDate AND b.endDate
AND '2017-04-10 00:00:00' NOT BETWEEN b.startDate AND b.endDate
AND b.car.id NOT IN (SELECT DISTINCT bd.car.id FROM BorrowedDate bd WHERE '2017-04-02 00:00:00' BETWEEN bd.startDate AND bd.endDate OR '2017-04-10 00:00:00' BETWEEN bd.startDate AND bd.endDate) 

TUTAJ są JPQL też

SELECT model.id, model.startDate, model.endDate, model.car.id
FROM BorrowedDate model
WHERE :userDateStart NOT BETWEEN model.startDate AND model.endDate
AND :userDateEnd NOT BETWEEN model.startDate AND model.endDate
AND model.car.id NOT IN (SELECT DISTINCT b.car.id FROM BorrowedDate b WHERE :userDateStart BETWEEN b.startDate AND b.endDate OR :userDateEnd BETWEEN b.startDate AND b.endDate)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Poznaj najpopularniejsze słowa w MySQL / PHP

  2. Konwersja wyzwalacza Oracle do wyzwalacza MySql

  3. MySQL:Jak obliczyć tygodnie od określonej daty?

  4. Błąd podczas wykonywania instrukcji aktualizacji Mariadb

  5. Jak zaktualizować tę samą tabelę po usunięciu w MYSQL?