Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Skonstruowanie odpowiedniego zapytania
Forum PHP.pl > Forum > Przedszkole
kodepiko6
Witam serdecznie wszystkich użytkowników przeglądających mój temat, mam nadzieję że nie będzie ich wielu -
tym samym dostając szybko rozwiązanie mojego problemu, który zapewne jak dla Was jest banalny..

Cóż, dopiero się uczę, mam prawo mieć takie 'główkowania' ;-)
Przejdźmy do rzeczy:

Potrzebuję skonstruować zapytanie MySQL, które będzie pobierać WSZYSTKIE POLA z tabeli TEST, jeśli zawartość pola IMIE powtórzy się więcej niż TRZY RAZY W TYM SAMYM CZASIE (pole data) i by IP było unikatowe, i jeśli TYP = RAZ

Obrazując, chciałbym osiągnąć taki wynik:

Tabela TEST:

|.. DATA ..| IMIE | IP | TYP
04:07:10 | JAN | 1.2.3 | raz
04:07:10 | JAN | 1.2.3 | raz
04:07:10 | JAN | 1.2.3 | raz
04:07:10 | JAN | 1.2.3 | raz
04:07:10 | JAN | 1.2.3 | dwa
04:07:10 | JAN | 6.6.6 | raz
04:07:10 | JAN | 6.6.6 | raz
04:07:10 | JAN | 6.6.6 | raz
04:07:10 | JAN | 6.6.6 | raz
04:07:09 | JAN | 6.6.6 | raz
04:07:10 | OLA | 6.6.6 | raz

By wynik zapytania zwrócił:

04:07:10 | JAN | 1.2.3 | raz
04:07:10 | JAN | 6.6.6 | raz

Nie mogę ustawić w tabeli klucza primary np. na ip, bo wtedy nie będzie się robić więcej niż 1 wpis na IP, a nie takie mam zamierzenia :/

Serdecznie proszę o pomoc, kombinuję z zapytaniami już prawie 2 godziny i mózg mi wysiada, nie potrafię skonstruować zapytania w którym IP byłoby czymś unikalnym,
po prostu liczy mi jak leci że DATA 04:07:10 jest 8 sztuk i podaje IP 1.2.3 zamiast wyodrębnić tego na dwa wyniki z osobnym ip, a tym samym czasem :/ ohno-smiley.gif

Uwaga, jeśli nie da rady tego zrobić zapytaniem / zapytaniami bezpośrednio w MYSQL, to prosiłbym o jakiś kod PHP + MySQL, jeśli jakoś da się osiągnąć zamierzany przeze mnie cel.
Z góry dziękuję bardzo za jakiekolwiek odpowiedzi.
Shili
  1. SELECT `data` , `imie` , `ip` , `typ`
  2. FROM `zapytanie`
  3. WHERE `typ` = 'raz'
  4. GROUP BY `ip` , `data`
  5. HAVING COUNT( `imie` ) >=3


Spróbuj czegoś w tym stylu.

Warunek WHERE jest oczywisty
Następnie następuje grupowanie po zbiorach ip i daty
I wybór tych rekordów, dla których imię powtarza się 3 razy.

Na moich przykładowych danych się zgadza.
W razie czego pokombinuj np. z dodatkowymi warunkami lub grupowaniem.

@edit
Przypadkowo poszło 2 razy.
kodepiko6
Dziękuję serdecznie za pomoc Shili, Twoje zapytanie okazało się perfekcyjne jak dla mnie.
Nie pokrywałem zbyt wielkiej nadziei, że w końcu ktoś zrozumie moje przesłanki, a tu proszę!
Serdeczne dzięki jeszcze raz! zakochany.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.