![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 19.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam dosyć skomplikowaną sytuację i nie mogę sobie poradzić ze skonstruowaniem zapytania. Mam produkty i ich atrybuty oraz wartości tych atrybutów chodzi mi o posortowanie produktów względem kilku atrybutów w odpowiedniej kolejności. Atrybuty rozwiązałem w te sposób, że mam tabelę atrybuty (w której są tylko ich nazwy), tabelę atrybuty_katalog (która łączy id grupy towarowej z id przypisanego do niego atrybutu) oraz tabelę atrybuty_wartosci (w której łączę id produktu, id atrybutu oraz mam w końcu wartość wartość). Teraz chodzi mi o zapytanie, które wybierze wszystko z tabeli produkty majace id kategorii równe X (i to jest oczywiste) ale problem właśnie w posrtowaniu.. posortowane odpowiednio wg wartości atrybutu o id=7, następnie atrybutu o id=1 itd... Mam nadzieję, że w miarę jasno udało mi się opisać sytuacje, w razie wątpliwości chętnie je rozwieje. Proszę o jakieś wskazówki mogące pomóc rozwiązać ten problem. Pozdrawiam, yacoos |
|
|
![]() |
![]() ![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
jest to proste do zrobienia ale nie do konca proste dla bazy do przeliczenia przy duzych ilosciach rekordow
Sadze ze cos takiego powinno zadziałacwiecej atrybutow to kolejne joiny. Oczywiscie mozna zrobic to bez joinow
ale to zapytanie bedzie zachowywac sie zupelnie inaczej Potestuj moze bedzie działać. Nazwy tablic musisz sobie sam odpowiednio ponazywac i do selecta takze odpowiednio dobrac kolumny Ten post edytował Sh4dow 4.12.2006, 10:49:44 -------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 19.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Bardzo dziękuję za odpowiedź. Próbowałem z JOIN'ami, jednak otrzymuję błąd: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'JEFT JOIN dodatkowe_wartosci AS a2 ON ( a2 . id_produkt = p . id_produkt AND a2 ' at line 1 Udało mi się to zrobić z WHERE... jest jednak ALE.. W momencie kiedy rekordu z wartością atrybutu nie ma w bazie - rekord z produktem nie jest wyświetlany.. Czy gdyby to z JOIN'em działało, to również by się tak działo? No i ew. co zrobić, żeby działało? Pozdrawiam, yacoos |
|
|
![]() ![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
no to co mowisz to wlasnie roznica miedzy zapytaniem z JOIN i z WHERE, jesliu nie ma atrybutu to w WHERE nie pokaze ci sie produkt. Jesli chodzi o błąd to wklej dokładnie zapytanie to postaramy sie poszukać błędu.
-------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 02:15 |