Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Powtarzające się wyniki zapytania, Jak wybrać tylko pierwszy z nich?
Krzysiekpdf
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 9.11.2004

Ostrzeżenie: (0%)
-----


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

Ten post edytował Krzysiekpdf 19.05.2007, 12:05:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


daj na koncu
  1. LIMIT 1;

jezeli dobrze zrozumialem o co Ci chodzi
Go to the top of the page
+Quote Post
Krzysiekpdf
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 9.11.2004

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Skorzystaj z DISTINCT Optimization.
Przykłady w manualu.
Go to the top of the page
+Quote Post
Krzysiekpdf
post
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 9.11.2004

Ostrzeżenie: (0%)
-----


Dzieki za nakierowanie. Wystarczylo dodac GROUP BY - z powtarzajacych sie wynikow zostawia tylko jeden (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Krzysiek.

Ten post edytował Krzysiekpdf 19.05.2007, 14:05:29
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 17:14