Skocz do zawartości

pomoc z SQLa potrzebna....


topbi

Rekomendowane odpowiedzi

Mam następujący problem:

tablica stor_produkty - zawiera unikalne produkty

tablica stor_galeria - może zawierać kilka zdjęć do jednego produktu

SELECT  t1.numer, t1.kat_id, t1.nazwa, t1.cena, t1.krotki_opis, t2.obraz FROM stor_produkty AS t1 INNER JOIN stor_galeria as t2 ON t1.numer=t2.produkt_id where aktywne=1

Łącząc te dwie tablice dostaje listę produktów z nazwą zdjęcia produktu.

Problem w tym że do jednego produktu może być kilka zdjęć :) a potrzebuje tylko jedno i do tego dokładnie pierwsze

Jak probuje tak:

SELECT DISTINCT t1.numer, t1.kat_id, t1.nazwa, t1.cena, t1.krotki_opis, t2.obraz FROM stor_produkty AS t1 INNER JOIN stor_galeria as t2 ON t1.numer=t2.produkt_id where aktywne=1

to dostaje tylko jedno ale to ostatnie ze zbioru dla danego produktu a zależy mi aby wynik zwracał pierwszy rekord :)

Wszelkie pomysły na rozwiązanie zagadnienia mile widziane.

Odnośnik do komentarza
Udostępnij na innych stronach

Jakbys w drugim zapytaniu odwrocil kolejnosc podawania tabel... Jest 2. w nocy, wiec nie wiem czy bedzie dzialac :yahoo:

Oficjalna strona serii Football Manager ( FM 2005, FM 2006 ) - CM Revolution

Forza MLKS Woźniki Śląskie!

Odnośnik do komentarza
Udostępnij na innych stronach

SELECT DISTINCT ON(numer) FROM 
(
 SELECT  t1.numer, t1.kat_id, t1.nazwa, t1.cena, t1.krotki_opis, t2.obraz 
 FROM stor_produkty AS t1 INNER JOIN 
  stor_galeria as t2 ON t1.numer=t2.produkt_id where aktywne=1
) AS zdjecia 
ORDER BY numer, numer_zdjecia(?)

Nie sprecyzowałeś o jakiego SQLa chodzi, więc masz :yahoo:

Odnośnik do komentarza
Udostępnij na innych stronach

SELECT  t1.numer, t1.kat_id, t1.nazwa, t1.cena, t1.krotki_opis, t2.obraz

FROM    stor_produkty t1, stor_galeria t2

WHERE  t1.numer  = t2.produkt_id(+)

AND    t2.aktywne = 1

ORDER  BY t2.obraz DESC

Przetestuj i powiedz co zwraca.

95747[/snapback]

W wyniku dostaje kilka lini na każdy produkt (tyle ile jest obrazków)

Odnośnik do komentarza
Udostępnij na innych stronach

SELECT DISTINCT ON(numer) FROM 
(
 SELECT  t1.numer, t1.kat_id, t1.nazwa, t1.cena, t1.krotki_opis, t2.obraz 
 FROM stor_produkty AS t1 INNER JOIN 
  stor_galeria as t2 ON t1.numer=t2.produkt_id where aktywne=1
) AS zdjecia 
ORDER BY numer, numer_zdjecia(?)

Nie sprecyzowałeś o jakiego SQLa chodzi, więc masz :)

95672[/snapback]

chyba to jest włąściwa droga tylko wymaga dopracowania, ale nie jestem pewien czy mySQL umie DISTINCT ON :D

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności