![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 8.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chciałbym prosić o pomoc w sformułowaniu zapytania sql, które jak dla mnie (od kilku godziń człowieka który musi znać sql) jest niemożliwe do wykonania. Zadanie (na ocalenia tyłka w szkole) polega na zbudowaniu zapytanie które operuje na trzech tabelach w jednej bazie. Tabele: tabela users id | name | username | email 1 | emil | zaqaz | emil@email.pl tabela baza_ip id | id2 | ip 1(users_id) | 42 | 255.255.255.255 tabela result id | id2 | position | number X | 42(users2_id) | 10 | 12 ilość rekordów w każdej z nich "ma być dowolnie duża", ponadto, w tabeli baza_ip ip może powtarzać się dowolną ilość razy, dla dowolnego id (po mojemu, wielu użytkowników z tym samym ip?) a w tabeli results dowolne id2 może posiadać dowolną ilość rekordów z rożnymi parametrami position i number (user id=42 może mieć position 10, 12 i 3 jednocześnie, number definiuje częstotliwość dla position) edit: a gdyby założyć, że to zakup produktu i jego ilość - dla celów zobrazowania? wynik zapytania miałby być następujący: na bazie ip określić imiona i maile użytkowników oraz parametry position i number przykładowy wynik: emil emil@email.pl 10 12 emil emil@email.pl 1 19 emil2 emil@email.pl 7 12 emil3 emil@email.pl 15 12 Tak oto przyszły hotelarz walczy o przetrwanie na informatyce. Próbowałem skontrować sam jakieś zapytanie ale szczytem finezji było zliczenie ile rekordów ma to samo ip lub imię, to mnie przerasta. Mam nadzieję, że znajdzie się dobra dusza które pomoże mi się z tym uporać, z góry dziękuje za wsparcie. Ten post edytował zaqaz 8.12.2012, 09:55:27 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 8.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Po usilnym błaganiu o namalowanie pytania dowiedziałem się, że tabela result może (na cele przykładu) służyć jaka baza odpowiedzi w ankiecie. User może udzielić wielu odpowiedzi, wiele razy. I tak, result_position to nr odpowiedzi (trzymany w innej tabeli, ale nie ma potrzeby podstawiania) a result_position o ile razu user wybrał tą odpowiedz - czyli jak dla mnie hitrate usera dla danej odpowiedzi.
Nie dyskutuję z logicznością tabel, bo te mam narzucone, do tego mam dorobić pytanie select tak, żeby osiągnąć opisany w pierwszym poście rezultat (dla przypomnienia), warunek where, lub jeden z nich bo chyba to wymaga jakiegoś zagnieżdżania, my być równy zdefiniowanemu z palca IP. Czy takie uzupełnienie wystarczy, czy o coś jeszcze powinienem dopytać? Poza zasadnością gnębienia uczniów takimi wygibasami na tym kierunku... (IMG:style_emoticons/default/wink.gif) Wymyśliłem sobie jeszcze taką rzecz...
pytanie dodatkowe brzmi, da się jakoś usunąc hurtem takie rekordy? zapytanie delete z tym samym warunkiem nie pomogło... Ten post edytował zaqaz 9.12.2012, 17:51:52 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 11:36 |