Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Proste zapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
Pilsener
Witajcie, tabelę mam mniej więcej taką:

login | status
asdf | 1
asdf | 0
asdf | 1
asdf | 1
qwer | 1
...

I jak napisać zapytanie, które zwróci unikalną listę loginów (tak jak distinct), jeśli wszystkie statusy dla danego loginu są 1? Niby proste, a trudne...
blooregard
select login from tabela where status = 1 group by login
Pilsener
Tak to ja już próbowałem winksmiley.jpg - chodzi mi o to, że:

xyz|1
xyz|0
xyz|1 - ma wyświetlić nic, bo jeden ze statusów jest różny od 1

xyz|1
xyz|1
xyz|1 - ma wyświetlić jeden login - xyz, bo żaden ze statusów nie jest różny od 1

Nie wiem jak to prościej wytłumaczyć winksmiley.jpg

Edit:
Niby coś mam, zajrzałem do książki (niewiarygodne, jakie mądre są te książki) i wymodziłem tak:

  1. SELECT login,avg(STATUS) FROM tabela GROUP BY login HAVING avg(STATUS)=1
- tylko czy to aby najlepsza i efektywna metoda? Jak ktoś zna lepszy sposób to prośba o dopisanie do tego tematu. Pozdrawiam.
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.