Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wyciagnac powtarzajace sie rekordy
Forum PHP.pl > Forum > Bazy danych > MySQL
Arkon
Wiam.
Jak wyciagnac z bazy wiersze w ktorych powtarza sie wartosc pewnego elementu.
Na przykład mamy taka tabele:
id | imie | nazwisko
i wartosci:
1 | Jan | Kowalski
2 | Albert | Wysocki
3 | Henryk | Portier
4 | Zbyszek | Kowalski
5 | Maria | Portier

Po wykonaniu zapytania chcialbym otrzymac:
1 | Jan | Kowalski
4 | Zbyszek | Kowalski
3 | Henryk | Portier
5 | Maria | Portier

Czyli wyciagnac te elementy w ktorych wartosc pola nazwisko wystepuje w tabeli wiecej niz 1 raz
Plzz pomocy..
popbart
Ja widzę rozwiązanie tylko w podzapytaniach mysql 4.1.x
  1. SELECT id,imie,nazwisko
  2. FROM tabela WHERE nazwisko IN(SELECT nazwisko
  3. FROM tabela GROUP BY nazwisko HAVING count(id)>1)
  4. ORDER BY nazwisko

Pzdr.
Arkon
Ok a gdybym dodal jeszcze np kolumne miasto i chcial wyciagnac te w ktorych powtarza sie miasto i nazwisko (oba w jednym rekordzie) czyli z
1 | Jan | Kowalski | Krakow
2 | Albert | Wysocki |Krakow
3 | Henryk | Portier | Krakow
4 | Zbyszek | Kowalski | Krakow
5 | Maria | Portier | Warszawa

wyciagnelo by
1 | Jan | Kowalski | Krakow
4 | Zbyszek | Kowalski | Krakow
EDIT:
Tak to ma byc? Bo nie moge teraz sprawdzic w "praniu"
  1. SELECT *
  2. FROM $table_name WHERE nazwisko IN(SELECT nazwisko
  3. FROM $table_name GROUP BY nazwisko HAVING count(id)>1) AND miasto IN(SELECT miasto
  4. FROM $table_name GROUP BY miasto HAVING count(id)>1)
  5. ORDER BY nazwisko
popbart
Raczej tak winksmiley.jpg
  1. SELECT *
  2. FROM tabela WHERE nazwisko IN(SELECT nazwisko
  3. FROM tabela GROUP BY nazwisko,miasto HAVING count(id)>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.