![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
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
Ten post edytował propage 15.05.2013, 18:18:39 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 07:25 |