Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql] pod zapytania
Forum PHP.pl > Forum > Bazy danych > MySQL
propage
Jeśli mam takie zapytanie

SELECT * FORM .... LIMIT 0, 1

To działa one dwa razy szybciej niż takie

SELECT *, (SELECT x FROM ... ) FORM .... LIMIT 0, 1

Zapytanie działa dwa razy szybciej niezaleznie od tego ile rekordów zróci, czy 100, czy 1, tzn. te subzapytanie, zawsze się wykonuje dla wszystkich potencjalnych rekordów prawpodobnie, przez co czas całego zapytania jest nie potrzebnie wydłużany.
Jak zrobić, aby subzapytanie wykonywało się tylko dla rekordów, które zwróciło głowne zapytanie?


mmmmmmm
Pewnie można połączyć JOINem. Dlaczego robisz w ten sposób? Napisz konkret.
propage
nie mogę połączyć joinem.
nospor
Napisz konkretnie co chcesz osiągnąć. Bez tego nie jesteśmy w stanie ci poprawnie pomóc...
propage
chce osiagnać to, żeby podzapytanie wykonaywało się w drugiej kolejności, a nie w pierwszej kolejności. Czy da się to jakoś skonfigurować
nospor
A czemu nie możesz połączyć JOINEM? Pokazujesz nam jakieś pseudokody i naprawdę nie jesteśmy w stanie ci nic wywróżyć....
Pokaż całe zapytanie jak wygląda, napisz czemu nie mozesz tego zamienic na JOIN to pogadamy jak normalni ludzie a nie jak wróżki
propage
bo już łącze joinem z tą tabelą ale jakby z innego powodu.

Napisze konkretniejszy przykład

Kod
SELECT *, (SELECT kategoria_id  FORM produkt_2_kategoria WHERE produkt_id = p.produkt_id AND main = 1 ) as kategoria_głowna FROM produkt p left join produkt_2_kategoria p_2_k WHERE p_2_k. kategoria_id = X
mmmmmmm
  1. SELECT *, p2.kategoria_id AS kategoria_głowna
  2. FROM
  3. produkt p
  4. LEFT JOIN
  5. produkt_2_kategoria p2
  6. ON p2.produkt_id=p.produkt_id AND p2.main=1
  7. LEFT JOIN produkt_2_kategoria p_2_k WHERE p_2_k. kategoria_id = X
nospor
Cytat
bo już łącze joinem z tą tabelą ale jakby z innego powodu.
A z jedną tabelą możesz się łączyć choćby i 1000 razy. Przykład podał już mmmmmmmmmm
A na przyszłość opisuj problem od razu to zaoszczędzisz kupę czasu...
propage
ok, to trochę pomogło przyśpieszyć zapytanie.
mmmmmmm
Pokaż PRAWDZIWE zapytanie i SHOW CREATE tabel, bo wierzyć mi się nie chce by "trochę pomogło"... Powinno dostać niezłego spida.
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.