![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
witam mam takie zapytanie:
Ale przy np 40 tys rekordów w bazu stat mam komunikat o braku pamięci. Jak wywołam zapytanie bezpośrednio w phpmyadminie jest. może ktoś ma jakiś pomysł. Indexy są |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
eh pokaż z jakich tabel (najlepie ich struktury) co chcesz uzyskać ;] (najlepiej na przykładzie)
Ten post edytował melkorm 30.09.2008, 15:28:34 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
mam 2 tabele
1 to www gdzie są strony www 2 to stat gdzie sa statystyki pole D to dzień miesiąca i teraz chce wyswetlic liste wszystkich stron i policzyc ile bylo odwiedzin dla kazdej strony ( a1,a2, i tak analogicznie ) struktura Kod CREATE TABLE `stat` (
`Id` int(10) NOT NULL auto_increment, `DocId` int(10) NOT NULL, `Act` enum('N','Y') collate utf8_unicode_ci NOT NULL, `UserId` int(6) NOT NULL, `Typ` enum('A','S') collate utf8_unicode_ci NOT NULL, `Ip` varchar(30) collate utf8_unicode_ci NOT NULL, `Red` varchar(200) collate utf8_unicode_ci NOT NULL, `Date` varchar(200) collate utf8_unicode_ci NOT NULL, `Time` int(15) NOT NULL, `M` int(2) NOT NULL, `W` int(2) NOT NULL, `D` int(2) NOT NULL, PRIMARY KEY (`Id`), KEY `D` (`D`), KEY `Typ` (`Typ`), KEY `DocId` (`DocId`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=13002; -- -------------------------------------------------------- -- -- Struktura tabeli dla `www` -- CREATE TABLE `www` ( `Id` int(10) NOT NULL auto_increment, `CatId` int(10) NOT NULL, `UserId` int(10) NOT NULL, `Date` varchar(180) NOT NULL, `Act` enum('N','Y') NOT NULL, `Adult` enum('N','Y') NOT NULL, `Title` varchar(250) character set utf8 collate utf8_polish_ci NOT NULL, `Desc` text character set utf8 collate utf8_polish_ci NOT NULL, `http` varchar(250) character set ucs2 collate ucs2_polish_ci NOT NULL, `Typ` enum('W','Z','N') NOT NULL, `Img1` varchar(200) NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=34; Ten post edytował acztery 30.09.2008, 15:32:30 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
To co pokazałeś w pierwszym poście to jakiś koszmar! Nie sądziłem, że ktoś jest w stanie trzaskać (wymyśleć!) takie zapytanie... Ja bym Ci sugerował inne podejście do sprawy oraz zapoznanie się z tematyką:
- grupowanie (GROUP BY), - podzapytania skorelowane. Wykorzystując grupowanie jesteś w stanie bez problemu otrzymać statystyki, o które Ci chodzi. Jest tu jednak jeden problem: jeżeli w tabeli 'stat' nie będzie żadnych odwiedzin dla któregoś dokumentu to nie zostanie on uwzględniony w zbiorze wynikowym. Wykorzystując podzapytanie skorelowane ominiesz powyższą niedogodność ale samo zapytanie może być mniej wydajne (szczególnie przy większej ilości dokumentów). Decyzja, którą drogą pójdziesz należy do Ciebie. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jezeli chcesz uzyskac taki format, jaki miales, to proponuje
Jezeli mozesz troche zmienic
Ale pisze z palca, wiec musisz sam przetestowac sobie to. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 17:13 |