Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podzapytania w MySQL 4.1
Forum PHP.pl > Forum > Bazy danych > MySQL
NoiseMc
Niedawno zaktualizowałem środowisko pracy o MySQL 4.1 w związku z czym chciałbym poznać opinie innych użytkowników forum na temat używania podzapytań. Czy używanie podzapytań zamiast JOIN - ów jest OK ? Dla mnie na pewno wygodniejsze co Wy o tym sądzicie.
kszychu
Ja osobiście wolę joiny, chociaż nie wszędzie da się je zastosować.
Radarek
Cytat(NoiseMc @ 2005-05-30 14:51:37)
Niedawno zaktualizowałem środowisko pracy o MySQL 4.1 w związku z czym chciałbym poznać opinie innych użytkowników forum na temat używania podzapytań. Czy używanie podzapytań zamiast JOIN - ów jest OK ? Dla mnie na pewno wygodniejsze co Wy o tym sądzicie.

Skoro jest taka mozliwosc tzn ze jest OK;). Z tym ze w wersji 4.x zapytania zagniezdzone sa bardzo slabo optymalizowane dlatego tam gdzie jest mozliwosc uzycia JOIN itp jest to bardzo wskazane. Sa jednak zapytania w ktorych zapytania zagniezdzone sa wygodne np:

tabela OSOBY
id_osoby|wiek

chcemy miec wszystkie najstarsze osoby

  1. SELECT *
  2. FROM OSOBY WHERE wiek = (SELECT max(wiek)
  3. FROM OSOBY);


Gdybysmy chcieli napisac to bez zapytania zagniezdzonego musielibysmy zapamietac maksymalny wiek w jakiejs zmiennej tymczasowej [czy to na poziomie php czy mysql] i wykonac odpowiednie zapytanie. Ponoc w wersji 5.x mysql ma lepiej optymalizowac zapytanai zagniezdzone.
dr_bonzo
Nie znam w ogole joinow ale podzapytania potrafia wiele: wybor 6 liczb w kolejnosci losowej sposrod tych najczesciej sie pojawiajacych ktorych ostatnio nie bylo. Ze 3 czy cztery podzapytania, wszsystko jasne i przejrzyste. Tj. totolotek -- jeszcze nic nie wygralem biggrin.gif
Radarek
Cytat(dr_bonzo @ 2005-05-30 16:16:37)
Nie znam w ogole joinow ale podzapytania potrafia wiele: wybor 6 liczb w kolejnosci losowej sposrod tych najczesciej sie pojawiajacych ktorych ostatnio nie bylo. Ze 3 czy cztery podzapytania, wszsystko jasne i przejrzyste. Tj. totolotek -- jeszcze nic nie wygralem biggrin.gif

To pochwal sie tym zapytaniem smile.gif
dr_bonzo
Tjaaasne, no chyba ze 70% z wygranych dla mnie biggrin.gif

PS. Jak sie przelacze na Linucha (gdzies o 21ej) to podam zapytanko.
-----------------------------------
Suprize:
  1. SELECT number
  2. FROM ( SELECT *
  3. FROM ( SELECT *
  4. FROM ( SELECT date, number, count( * ) AS cnt
  5. FROM `data` GROUP BY number ORDER BY cnt DESC LIMIT 24 ) AS temptab ORDER BY date ASC LIMIT 18 ) AS temptab2 ORDER BY RAND() LIMIT 6 ) AS temptab3 ORDER BY number ASC
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.