![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 12.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam przykładową tabelę z cechami produktu:
ID | klucz | wartosc nokia-6300 | Radio | Tak .... Korzystam z poniższego samo złączenia aby wyjąć określone cechy i zbudować z nich kolumny: Kod SELECT c1.ID, c1.wartosc as Bluetooth, c2.wartosc as Aparat, c3.wartosc as MP3, c4.wartosc as Radio FROM cechy as c1 LEFT JOIN cechy as c2 ON c1.ID = c2.ID AND c2.klucz = 'Aparat fotograficzny'<BR>LEFT JOIN cechy as c3 ON c1.ID = c3.ID AND c3.klucz = 'Odtwarzacz mp3' LEFT JOIN cechy as c4 ON c1.ID = c4.ID AND c4.klucz = 'Radio' WHERE <BR>c1.klucz = 'Bluetooth' and<BR>c1.ID in ('nokia-6300', 'motorola-v3') Dwa pytania: - gdzie powinien znaleźć się warunek dotyczący pierwszej cechy c1.klucz w części ON czy w WHERE? - a może wszystkie c1.klucz, c2.klucz... powinny być w WHERE? ![]() - jak to zoptymalizować? bo dla 10 cech skutecznie to całkowicie zamula mojego starego koma? SELECT c1.ID, c1.wartosc as Bluetooth, c2.wartosc as Aparat, c3.wartosc as MP3, c4.wartosc as Radio FROM cechy as c1 LEFT JOIN cechy as c2 ON c1.ID = c2.ID AND c2.klucz = 'Aparat fotograficzny' LEFT JOIN cechy as c3 ON c1.ID = c3.ID AND c3.klucz = 'Odtwarzacz mp3' LEFT JOIN cechy as c4 ON c1.ID = c4.ID AND c4.klucz = 'Radio' WHERE c1.klucz = 'Bluetooth' and c1.ID in ('nokia-6300', 'motorola-v3') |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 288 Pomógł: 12 Dołączył: 2.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze zrozumiałem, ale chyba lepiej trochę przerobić kod (dla przykładu php), a zapytanie wykonać tak:
a pozniej
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:47 |