![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 12.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam problem z zapytaniem SQL'owym. Chce wyświetlić wszystkie produkty z odpowiadającymi im obrazkami. [obrazek] [nazwa produktu] [obrazek] [nazwa produktu] [obrazek] [nazwa produktu] - Każdy produkt może mieć wiele obrazków - Chce wyświetlić tylko jeden obrazek przy każdym produkcie - Jeden z wielu obrazków produktu może być oznaczony jako główny. - Jeżeli jeden z obrazków produktu jest oznaczony jako główny, powinien być wyświetlony - Jeżeli żaden z obrazków nie jest oznaczony jako główny wyświetlić się powinien pierwszy z brzegu ![]() Czyli [produkt] id_produkt nazwa [Obrazek] id_obrazek nazwa czy_glowny id_produkt produkt.id_obrazek->obrazek.id_obrazek (relacja 1 do wielu) produkt.czy_glowny przyjmuje wartości 1 lub 0 Czy ktoś może wie jak skonstruować zapytanie SQL (MySQL) najlepiej z wykorzystaniem JOIN ? Ten post edytował payonk 3.07.2006, 09:24:17 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 28.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
id_obrazek to oczywiście id produktu, do którego należy obrazek? Jeśli tak, to proszę:
Ten post edytował Nostress 2.07.2006, 13:14:12 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 12.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Namieszałem trochę
![]() W pierwszej wiadmości poprawiłem wygląd tabel. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 28.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 12.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie sprawdzałem ale z tego co widzę to w momencie kiedy produkt posiada 30 obrazków, produkt wyświetli się 30 razy, a oczywiście powinien raz.
Wiem że można teraz pogrupować wyniki po produkt.id_produkt ale są 2 ale. 1 Nie jest to optymalne 2 Co z obrazkiem głównym, jeżeli istnieje powinien się wyświetlić właśnie on, a jeżeli wszystkie obrazki danego produktu mają flagę glowny ustawioną na 0 to powinien się wyświetlić pierwszy z brzegu. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 28.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wyświetli się tylko produkt z jednym obrazkiem. A koncówka, tj. ORDER BY produkt.id_produkt, obrazek.czy_glowny DESC odpowiada za to, żeby w "kolejce" obrazków najpierw były te "główne".
Najpierw sprawdź, później pytaj. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 12.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ok wyświetla się tylko jeden. Ale niestety są złe wyniki.
Zapytanie wykonałem na bazie:
dostaję taki wynik: [produkt.nazwa] [obrazek.nazwa] rower pierwszy obrazek rowera motur drugi obrazek rowera Ten post edytował payonk 6.07.2006, 10:35:33 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 00:51 |