![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 11.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam pewien problem, chcąc zoptymalizować zapytania do bazy MySQL złożyłem jedno duże zapytanie. Po wielu próbach udało mi się złożyć zapytanie, które działa ![]() Czy da się coś zrobić jeszcze z tym zapytaniem czy muszę wykombinować coś innego ?
W tym zapytaniu chodzi o to żeby wybrać produkty, które mają cechy równe "lato" oraz "205" ![]() prod_products - tabela z produktami prod_products_trans - tabela z tłumaczeniem do produktów prod_features_values - tabela z cechami produktu np. sezon = lato, grubość = 350, wysokość = 100 Liczę na pomoc kolegów ![]() Ten post edytował Pyrfee 19.04.2009, 11:03:10 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobił mniej-więcej tak:
Mogłem ominąć jakieś warunki, bo Twoje zapytanie jest zupełnie nieczytelne. Ale korzystając z tego wzoru powinieneś sobie sam poradzić. Ten post edytował sowiq 19.04.2009, 11:15:55 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 11.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie jak tutaj między znacznikami [ sql ] zrobić łamanie linii ?
![]() Co do zapytania to Twój przykład działa, ale tylko wtedy kiedy filtruje po jednej z cech np. sezon = lato. Gdy dodam do tego np. szerokosc = 205 to już zapytanie zwraca 0 wyników. Poza tym muszę użyć RIGHT JOIN, ponieważ chcę wyniki tylko z wszystkimi pasującymi cechami. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeśli w tabeli prod_features_values masz dla jednego produktu kilka wpisów dotyczących poszczególnych właściwości, to masz dwa wyjścia:
- zrobić po jednym JOIN'ie dla każdej cechy - zastosować EXISTS - zrobić jedno podzapytanie Ale na gotowca nie licz ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 10:42 |