Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ograniczenie liczby zapytac
thornag
post
Post #1





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


Rozumiem ze moje tematy mnoza sie jak grzyby po deszczy ale zrozumialem ze zwykle kaskadowe selectowanie to sie robilo w przedszkolu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Szukam wiedzy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ogolnie mam dwie tabele - tabele z sesjami i tabele z grupami uzytkownikow.

Chce pobrac informacje jacy uzytkownicy (nalezacy do jakis grup) sa aktualnie online.
Grup jest 5, wiec do teraz wykonuje to 5 zapytaniami, oto one:
  1. SELECT u.user_id, s.session_user, u.friends FROM sessions s, users_groups u WHERE s.session_user != 0 AND s.session_user = u.user_id AND u.friends = 1
  2.  
  3. SELECT u.user_id, s.session_user, u.standard_users FROM sessions s, users_groups u WHERE s.session_user != 0 AND s.session_user = u.user_id AND u.standard_users = 1
  4.  
  5. SELECT u.user_id, s.session_user, u.deluxe_users FROM sessions s, users_groups u WHERE s.session_user != 0 AND s.session_user = u.user_id AND u.deluxe_users = 1
  6.  
  7. SELECT u.user_id, s.session_user, u.corporate_users FROM sessions s, users_groups u WHERE s.session_user != 0 AND s.session_user = u.user_id AND u.corporate_users = 1
  8.  
  9. SELECT u.user_id, s.session_user, u.corporate_users FROM sessions s, users_groups u WHERE s.session_user != 0 AND s.session_user = u.user_id AND u.corporate_users = 1


Konstrukcja tabeli grupy.

Kod
user_id grupa1 grupa2 ....
245        1    0
296        1    0
itp


Moje pytanie, czy da sie to zrealizowac za posrednictwem mniejszej ilosci zapytan ? Ogolnie zoptymalizowac ten fragment ?

Ten post edytował thornag 5.10.2006, 13:12:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Np union i dodawac sobie typ zapytania.
Go to the top of the page
+Quote Post
thornag
post
Post #3





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


Probowalem union. Dla testu stworzylem zapytanie:

  1. SELECT COUNT( user_id ) AS users
  2. FROM users UNION
  3. SELECT COUNT( session_id ) AS sessions
  4. FROM sessions


Podaje mi wynik w postaci:
Kod
users
  2
  3

Gdzie pierwszy rekord to liczba userow a drugi to liczba sesji. Jak natomiast podac to w postaci
Kod
users sessions
  2       3


Oczywiscie dalej chce uzywac UNION nie zapytania na dwie tabele bo zapytanie docelowe jest troche bardziej skomplikowane jak te w pierwszym poscie.
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Moznesz np tak:

  1. SELECT COUNT( user_id ) AS 'count', 'users' AS 'type'
  2. FROM users UNION
  3. SELECT COUNT( session_id ) AS 'count', 'session' AS 'type'
  4. FROM sessions
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 27.09.2025 - 06:44