Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Powtarzające się wyniki zapytania
Forum PHP.pl > Forum > Bazy danych > MySQL
Krzysiekpdf
Witam,

Mam baze danych z kilkoma tabelami polaczonymi ze sobą. Grupy, pracownicy, publikacje, kolejnosc (kolejnosc autorów w publikacji numerkami 1, 2, 3 itd.)

Pracownicy sa z roznych grup. Przy wpisywaniu publikacji skrypt wrzuca dane do odpowiednich tabel.

I teraz zapytaniem:

  1. $zapytanie = "SELECT *FROM tabela_publikacja, tabela_kolejnosc, tabela_pracownik, tabela_grupa
  2. WHERE tabela_publikacja.PublikacjaID = tabela_kolejnosc.PublikacjaID AND tabela_kolejnosc.PracownikID = tabela_pracownik.PracownikID AND tabela_pracownik.GrupaID = tabela_grupa.GrupaID AND tabela_publikacja.Typ = '0' AND `Rok` = '2007' AND `OznaczenieGrupy` = 'OZ' AND `kolejnosc` = '1' AND `StatusPublikacji` = '0' ORDER BY `Rok` ASC";


Wyciągam publikacje dla danej grupy, ale tylko wtedy, jezeli autor publikacji jest pierwszy na lisie autorów.

Jezeli zmienie na:
  1. `kolejnosc` < '10'

gdy jest wiecej, niz 1 autor z danej grupy wyswietla wszystkich, czyli tyle takich samych rekordów, ilu jest autorów danej publikacji.

Chcialbym, zeby wyswietlany byl tylko jeden wynik (z kazdego w powtarzajacych sie TytulPublikacj) i wszystkie pozostale - nie powtzrzajace sie.

Jak zapytac, zeby byl wyswietlany tylko pierwszy wynik danej publikacji dla danej grupy niezaleznie od kolejności. Tzn, zeby wyciagal tylko jedna publikacje dla danej grupy nawet wtedy, kiedy jest wiecej autorów (tabela z publikacjami jest polaczona z tabela z grupami przez tabele z pracownikami).

Krzysiek
Daimos
daj na koncu
  1. LIMIT 1;

jezeli dobrze zrozumialem o co Ci chodzi
Krzysiekpdf
No tak, ale przy limit 1 zwróci zawsze tylko jeden wynik, niezaleznie czy pole TytulPublikacji powtarza sie, czy nie. Ja chce, zeby pojawily sie wszystkie niepowtarzajace sie wyniki, a z tych, które sie powtarzaja tylko po jednym.

Krzysiek
mike
Skorzystaj z DISTINCT Optimization.
Przykłady w manualu.
Krzysiekpdf
Dzieki za nakierowanie. Wystarczylo dodac GROUP BY - z powtarzajacych sie wynikow zostawia tylko jeden smile.gif

Krzysiek.
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.