Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Optymalizacja zapytania
Lwik
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 8
Dołączył: 11.05.2012

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


Witam,
od jakiegoś czasu szukam pomysłu na przerobienie zapytania.
Aktualnie korzystam z takiego rozwiązania;
  1. $zapytanie = $this->sql->query("
  2. SELECT * from plany
  3. ");
  4. $i = 0;
  5. while($item = $zapytanie->fetch_array())
  6. {
  7. $zapytanie2 = $this->sql->fetch($this->sql->query("SELECT count(id) as count
  8. FROM rzeczy
  9. where rzeczy.user_id = ".$this->id." and rzeczy.plan_id = ".$item['id']));
  10. }

Jednak przy większej ilości planów (100) zaczyna robić się z tego wąskie gardło.
Czy jest jakaś możliwość wykorzystania tu jednego zapytania (Inner?), jeśli tak to jak to zrobić?
Muszę pobrać pełną zawartość tabeli `plany` i licznik z `rzeczy`.
Próbowałem tak:
  1. SELECT plany.name, COUNT( rzeczy.id ) AS count
  2. FROM plany
  3. INNER JOIN rzeczy ON plany.id = rzeczy.plan_id
  4. WHERE rzeczy.user_id = ".$this->id."

Ale nie do końca zwraca to co chcę (jeden licznik i nazwę)

Ten post edytował Lwik 28.04.2013, 18:10:52
Go to the top of the page
+Quote Post

Posty w temacie
- Lwik   [MySQL] Optymalizacja zapytania   28.04.2013, 18:02:26
- - Greg0   Poczytaj o JOIN w SQL   28.04.2013, 18:05:12
- - Lwik   Dzięki, nie pomyślałem o group.by Rozwiązałem to t...   28.04.2013, 18:21:50


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: 25.08.2025 - 01:28