![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 29.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam sobie takie zapytanie
i mniej więcej taka strukturę: (IMG:http://brylant.ists.pwr.wroc.pl/~pablo/bd/class_diag0.jpg) gdzie z lewej jest 1 a z prawej * (1..*) Jak rozbudować to zapytanie, żeby w wyniku otrzymać prawidłowe COUNT(siteWords.wordId) i jednocześnie dbając o wydajność. Jakieś podpowiedzi? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Tak może (ale nie musi - sprawdź) być trochę lepiej:
Kod SELECT userData.userId, sq.cnt FROM userData LEFT JOIN ( SELECT userId, COUNT(*) AS cnt FROM user2site GROUP BY userId ) AS sq USNIG(userId) WHERE ... Poza tym sprawdź EXPLAINem obie wersje, czy korzystają z indeksów. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 29.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zmodyfikowałem to tak:
i mam w wyniku: "userId";"userSites";"userWords" "1000";"0";NULL "1001";"1";"2" "1001";"1";"6" które mnie nie urządza, gdyż wynik oczekiwany jest: "userId";"userSites";"userWords" "1000";"0";NULL "1001";"2";"8" zmiana prosta do zrozumienia, ale jakoś cięższa do napisania. PS. Na klucze i sprawdzanie ich użycia przyjdzie pora niebawem ... klucze wolę definiowac graficznie a nie z palca, phpmyadmin nie chce wspolpracowac, a softu heidisql nie mam pod reka. Ok jest.
Zabieram się za klucze (IMG:style_emoticons/default/smile.gif) Dzieki za pomoc. Ten post edytował beherit 22.06.2010, 11:41:14 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:39 |