![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam tabelę, w której w każdym rzędzie przechowuję m.in. datę utworzenia oraz login.
Jako rezultat ma wyjść tabelka - kolumny loginy, wiersze daty a w środku liczba wystąpień w tabeli dla danej daty i danego loginu: data | login1 | login2 | suma 2011-06-18 6 7 13 2011-06-19 2 1 3 Razem: 8 8 16 Na tą chwilę zrobiłem to w sposób taki, że pobieram jednym selectem distinct daty, drugim selectem loginy. Następnie lecę podwójnym foreach i dla każdej daty, wykonuję select count(*) dla każdego loginu. Takie rozwiązanie jest jednak mało wydajne (przy 12 datach i 9 loginach łączny czas zapytania zajmuje 2 sekundy (IMG:style_emoticons/default/smile.gif) ). Może ma ktoś wydajniejszy sposób do przetestowania? Poniżej kod jakby kogoś interesował:
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie problem jest w tym, że data jest używana również w innych częściach aplikacji, gdzie znacznie wygodniej jest operować na INT niż na DATE.
Id też wolę nie wstawiać, bo jeśli skasujesz użytkownika, to nie dowiesz się jaki username odpowiadał jego id. Mimo wszystko dzięki za poświęcony czas (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 06:31 |