Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyciągnięcie danych z dwóch tabel.
Forum PHP.pl > Forum > Bazy danych > MySQL
Whisller
Witam,
mam pewien spory problem z zapytaniem do bazy. A mianowicie, mam dwie tabele oferty oraz zdjecia dla każdej oferty może być wiele rekordów z tabeli zdjęcia czyli mamy tutaj 1:wiele
Muszę wyciągnąć rekordy z tabeli oferty oraz po jednym rekordzie z tabeli zdjecia gdzie oferty.id = zdjecia.idOferta ale ( i w tym cały szkopuł ) rekord z tabeli zdjęcia musi być najstarszym rekordem. Czyli posortowanym na zasadzie MIN(zdjecia.id).

Moje kombinacje niestety zakończyły się na
  1. SELECT oferty.miejscowosc, oferty.idRegion, oferty.dataDodania, oferty.id,
  2. zdjecia.zdjecieMiniaturka
  3. FROM oferty LEFT JOIN zdjecia
  4. ON oferty.id = zdjecia.idOferta
  5. WHERE idKategoria = 1
  6. GROUP BY oferty.id
  7. ORDER BY oferty.id


Z góry dziękuje za pomoc.

Edit
Chyba mam rozwiązanie, ale muszę jeszcze to przetestować.

***
Niestety mój sposób nie był wart funta kłaków smile.gif
tom00
jeśli dobrze zrozumiałem to widze sposoby:
- zrezygnować z grupowania i do ORDER BY dorzucić zdjecia.id
- zostawić tak jak jest, tylko fizycznie posortować sobie dane w tabeli zdjecia (ALTER TABLE zdjecia ORDER BY id)
- albo użyć subselecta (co zapewne będzie najmniej wydajne)

  1. SELECT oferty.miejscowosc, oferty.idRegion, oferty.dataDodania, oferty.id AS offerID,
  2. (SELECT zdjecia.zdjecieMiniaturka FROM zdjecia WHERE IDoferta = offerID ORDER BY zdjecia.id LIMIT 1)
  3. FROM ofery WHERE idKategoria = 1;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.