Aktualny status książki |
Aktualny status książki |
4.11.2019, 17:17:20
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 26.01.2016 Ostrzeżenie: (0%) |
Cześć.
Mam bardzo prostą bazę książek. Wypożyczenie książki powoduje wpis w tabeli WYPOZYCZENIA indeksu użytkownika, który wypożyczył, timestamp wypożyczenia oraz status wpisany jako 0. Po oddaniu książki jest wpisywany w tabeli WYPOZYCZENIA timestamp oraz status zmieniony na 1. W jaki sposób „wyciągnąć” tabeli ostatnie statusy książek? Przykładowo mam: Kod | book | user | stan| time | | 1 | 1 | 0 | 2019-11-04 15:31 | | 2 | 1 | 0 | 2019-11-04 15:32 | | 3 | 4 | 0 | 2019-11-04 15:33 | | 1 | 0 | 1 | 2019-11-04 15:37 | | 1 | 5 | 0 | 2019-11-04 15:39 | | 3 | 0 | 1 | 2019-11-04 15:39 | wiersz 1 - książkę nr 1 wypożyczył użytkownik nr 1, co spowodowało wpisanie stanu = 0 w wierszu 4 książka nr 1 została zwrócona co spowodowało dodanie wpisu i ustawienie stanu = 1 w wierszu 5 książka nr 1 znów została wypożyczona, tym razem użytkownikowi nr 5 => zapisany stan = 0 W jaki sposób „wyciągnąć" tylko wypożyczone książki? Czyli wg powyższego przykładu w odpowiedzi na zapytanie powinny pokazać się tylko 2 pozycje: książka numer 2 wypożyczona użytkownikowi 1 o 2019-11-04 15:32 książka numer 1 wypożyczona użytkownikowi 5 o 2019-11-04 15:39. Da się to zrobić 1 selectem? |
|
|
4.11.2019, 17:32:31
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
Powinienies odrozniac stan ksiazki od historii stanu. I zeby to zrobic dodaj poprostu pole STAN do tabeli ksiazki i wowczas zapytanie bedzie banalnie proste. Nie utrudniaj sobie zycia na sile
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
4.11.2019, 17:40:23
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 26.01.2016 Ostrzeżenie: (0%) |
Nospor - gdybym miał tabelę książki, to bym zrobił tak, jak radzisz. Tak naprawdę to nie baza książek, ale dla zjadliwości opisu posłużyłem się przykładem wypożyczania książek.
Dlatego ponowię pytanie - jak to zrobić na tej konkretnej tabeli? |
|
|
4.11.2019, 17:57:15
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Ale w każdej chwili możesz zrobić sobie widok z kolumnami które potrzebujesz.
-------------------- |
|
|
4.11.2019, 18:13:25
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
-------------------- |
|
|
4.11.2019, 20:34:26
Post
#6
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 26.01.2016 Ostrzeżenie: (0%) |
Dzięki! Wygląda na to, że działa . Tylko nie do końca ogarniam.... Co oznacza w WHERE k2.book IS NULL AND k1.stan=0;? |
|
|
4.11.2019, 21:43:41
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Przyjrzyj się złączeniu, usuń całą klauzulę WHERE i sprawdź wynik po takiej modyfikacji. Będziesz wiedział.
Zapomniałem dodać. Początek taki: SELECT k1.*,k2.* Ten post edytował trueblue 4.11.2019, 22:10:07 -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 06:20 |