Mysql
 sql >> база данни >  >> RDS >> Mysql

HQL / JPA намира налични елементи между диапазон от дати

Виждам, че запитването ви е правилно.

Но ако искате да изберете въз основа на идентификационния номер на автомобила, трябва да добавите идентификационния номер на автомобила като условие също във вашата заявка

Например

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

ИЛИ можете да го направите и така

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

тогава трябва да подадете :carId стойността е равна на 2

АКТУАЛИЗАЦИЯ

можете да опитате тази SQL заявка, ако трябва да получите динамичен резултат, скоро ще я актуализирам с 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) 

ТУК са JPQL също

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. Инсталирането на MySQL в Docker се проваля със съобщение за грешка Не мога да се свържа с локален MySQL сървър чрез сокет

  2. Свържете две таблици, след което Поръчайте по дата, НО комбинирайки двете таблици

  3. Свързването на MySQL база данни към Glassfish classpath не е зададено или името на класа е грешно

  4. Достъп до MySql база данни от PHP файл на локален хост

  5. PHP код при преглед на pdf файл от mysql база данни