Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Usuwanie powtarzających się wyników
Forum PHP.pl > Forum > Przedszkole
dr revuu
Mam następujący kod:

  1. SELECT tytul, opis, r_gra, id_gatunek, data_prem, r_prem, id_gra_firma, r_prodwyd, nazwa
  2. FROM dupa_gra
  3. LEFT OUTER JOIN `dupa_gra_gatunek`
  4. USING ( id_gra )
  5. LEFT OUTER JOIN `dupa_gra_prem`
  6. USING ( id_gra )
  7. LEFT OUTER JOIN `dupa_gra_prodwyd`
  8. USING ( id_gra )
  9. LEFT OUTER JOIN `dupa_gra_firma`
  10. USING ( id_gra_firma )


Wyszukiwanie określonej gry działa dobrze. Jednak mam problemy z wynikami.

Tabele "gra_prem" i "gra_prodwyd" mogą mieć więcej niż jeden wiersz spełniający kryteria łączenia (id_gra). A skoro wynikiem łączenia jest iloczyn kartezjański, to każdy kolejny wiersz w "gra_prem" i "gra_prodwyd" zwielokratnia mi wiersze w wynikach, jednocześnie dublując już wyszukane dane (tytul, opis, id_gatunek).

Pytanie 1: Czy da się tego w jakiś sposób uniknąć?

Pytanie 2: Stwierdziłem, że pobierając dane do wyświetlenia odnośnie jednego obiektu (w tym wypadku gra) lepiej zrobić jedno zapytanie. Ale wolę się upewnić... Czy lepiej dla tych powtarzających się wyników w tych samych tabelach zrobić oddzielne zapytania?

Mam nadzieję, że struktura bazy nie jest potrzebna, ale w razie co wkleję.

Pozdrawiam.
gothye
odp.

  1. GROUP BY id_gra
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.