ďťż

[MySQL] Listing duplikatów

       

Podstrony


telcocafe

Załóżmy że mam tabelkę:
+----+-----------+-------+ | ID | imie | wiek | +----+-----------+-------+ | 1 | Bogdan | 12 | | 2 | Zygfryd | 8 | | 3 | Zenon | 12 | | 4 | Euzebiusz | 4 | | 5 | Horacjusz | 7 | | 6 | Antoni | 12 | | 7 | Anna | 7 | +----+-----------+-------+
Chciałbym teraz (via PHP) zrobić listę tych osób, które mają nieunikatowy wiek (czyli tych, których wiek powtarza się w całej tabeli więcej niż jeden raz). Najlepiej, żeby lista była posortowana wg wieku, tzn:
+----+-----------+-------+ | ID | imie | wiek | +----+-----------+-------+ | 1 | Bogdan | 12 | | 3 | Zenon | 12 | | 6 | Antoni | 12 | | 5 | Horacjusz | 7 | | 7 | Anna | 7 | +----+-----------+-------+
(Zygfryda i Euzebiusza nie ma, bo ich wiek jest unikatowy).

Jakieś pomysły (dość konkretne - link do rozwiązania albo kod) jak to pobrać w jednym zapytaniu?



Nie jestem pewny, czy ten przykład zadziała poprawnie, ale spróbuj:SELECT t1.* FROM tabela t1 INNER JOIN tabela t2 ON t1.wiek = t2.wiek

Ja z kolei wpadłem na taki pomysł:
select * from tabela,(select vote,count(wiek) as ile from tabela group by wiek) as podzapytanie where tabela.wiek=podzapytanie.wiek and podzapytanie.ile!=1
u mnie na przykładowych danych działało.
Użytkownik kutar edytował ten post 28 styczeń 2008, 16:04
kutar - dziękuję, działa! :D
Ferrari - też dzięki, choć coś nie działa, ale nie mam specjalnie ochoty sprawdzać dlaczego. ;)

temat jak dla mnie można zamknąć
Użytkownik bryn edytował ten post 28 styczeń 2008, 16:13


MySQL nie w każdej wersji obsługuje podzapytania, na innych serwerach może być problem


MySQL nie w każdej wersji obsługuje podzapytania, na innych serwerach może być problem
Hmmm... 4.1 obsługuje, a nie spotkałem się, żeby gdzieś obecnie była niższa wersja.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.