• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapytanie SQL

Object Storage Arubacloud
0 głosów
136 wizyt
pytanie zadane 5 grudnia 2020 w SQL, bazy danych przez lumix97 Nowicjusz (120 p.)

Witam! Mam problem z utworzeniem dobrego zapytanie SQL. Otóż mam taką część bazy (stworzylem na szybko w accessie, żeby łatwiej zobrazować).Baza

I chciałbym stworzyć zapytanie, które pokaże dostępne samochody w danym czasie (tabela events jest od wypożyczeń samochodów). Chodzi mi o to, żeby wybrać samochody dostępne w okresie podanym przez użytkownika (poprzez zmienne). Coś mi nie wychodzi stworzenie takiego zapytanie do bazy mam tylko coś takiego:

SELECT cars.*, events.*
FROM cars
      LEFT JOIN events ON events.id_car = cars.id_car

Z góry dziękuję za pomoc!

1 odpowiedź

0 głosów
odpowiedź 5 grudnia 2020 przez SzkolnyAdmin Szeryf (86,360 p.)
edycja 5 grudnia 2020 przez SzkolnyAdmin

Czy events.start_date i events.end_date to czas zarezerwowania samochodów? W takim razie szukasz przedziału dat poza przedziałem <events.start_date;  events.end_date>.

Użytkownik podaje w formularzu dwie daty – poczatek (data początkowa rezerwacji) i koniec (data końcowa rezerwacji). Oczywiście musisz zadbać, aby daty były prawidłowo podane (koniec>=poczatek; "=" bo rezerwacja może być na 1 dzień).

Piszesz:

SELECT cars.*, events.*

FROM cars

JOIN events ON events.id_car = cars.id_car

WHERE (poczatek<events.start_date AND koniec<events.start_date)

OR (poczatek>events.end_date AND koniec>events.end_date)

Może być problem, jak samochód jest rezerwowany kilka razy w tabli events, wtedy powyższe zapytanie może dać  fałszywy wynik (podany przez użytkownika przedział dat rezerwacji nie pokryje się z jednym wpisem, ale pokryje z innym), ale w tym przypadku lepiej niech wypowiedzą się spece od SQL-a.

Lepiej zrób w formularzu coś na kształt kalendarza, w którym dla danego dnia będą widoczne dostępne samochody. Tu już zapytanie będzie łatwiejsze i odporne na wyżej przedstawiony problem.

komentarz 5 grudnia 2020 przez lumix97 Nowicjusz (120 p.)
Tak, chodzi o to, że jeden samochód może być wiele razy rezerwowany w różnych datach i właśnie chodzi mi o to, żeby zrobić wyświetlenie dostępnych samochodów w zadanej dacie, ale właśnie do tego potrzebuję takiego zapytania :)

Podobne pytania

0 głosów
1 odpowiedź 167 wizyt
pytanie zadane 8 maja 2020 w SQL, bazy danych przez Zelek Użytkownik (960 p.)
+2 głosów
2 odpowiedzi 231 wizyt
pytanie zadane 9 marca 2022 w SQL, bazy danych przez Czang Kai Shrek Obywatel (1,990 p.)

92,555 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,941 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...