Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Subselect mysql prośba o pomoc
kiciafu
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 11.05.2010

Ostrzeżenie: (0%)
-----


Witam,

Nie mogę sobie poradzić z problemem. Stworzyłem sobie widok który składa się z 4 pól:

id_zdarzenia,
ile_dni,
id_listy,
id_osoby,

Sytuacja jest taka: do każdego zdarzenia przyporządkowana jest określona liczba list (tyle ile trwa zdarzenie), a na każdej liście jest określona liczba uczestników (id_osoby). Jeżeli w tabeli zdarzeń jest informacja, że trwa 3 dni to w tabeli listy powinny być trzy listy dla tego zdarzenia (udało mi się napisać zapytanie, które zwraca te zdarzenia dla których ta zależność nie zachodzi). Chcę wybrać z tabeli (widoku) te osoby, które figurują na wszystkich listach dla danego zdarzenia czyli mają 100% frekwencje w zdarzeniu,

proszę o jakieś sugestie jak to osiągnąć
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A nie pomyślałeś o logice? Join zdarzeń z listami obecności z wybraniem określonego zdarzenia. Potem grupujesz po id osoby i zliczasz liczbę wystąpień. Skoro wiesz ile dni trwa zdarzenie to potem tylko te wartości porównasz. Nie znam dokładnej struktury tabel, więc tylko tyle mogę powiedzieć.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
kiciafu
post
Post #3





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 11.05.2010

Ostrzeżenie: (0%)
-----


hej dzięki za zainteresowanie moim dziwnym problemem

widok po złączeniach wygląda tak jak na tym obrazku:



Co ta tabela reprezentuje...

Osoba o id = 1 jest wpisana na pierwszej liście i na drugiej liście ze zdarzenia o id = 1 zdarzenie trwa 2 dni a liczba list zawsze jest równa liczbie dni zdarzenia. To oznacza że id_os = 1 jest zapisana na wszystkich listach tego zdarzenia. Osoba o id = 2 tego warunku nie spełnia bo ma zapis tylko na jednej liście ze zdarzenia 2 dniowego. Osoba 3 oraz 4 też spełniają warunek no i 5 nie. Chodzi mi o takie zapytanie, które z tego widoku pobierze tylko te id_os z kompletnymi wpisami, innymi słowy zwróci mi: 1, 3, 4. Zrobiłem do tego widok bo wydawało mi się, że z jednej tabeli łatwiej będzie pobrać dane jak tak się nie da to wrzucę całą strukturę kawałka bazy
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 10:28