Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Podwójne zapytanie o DISTINCT
Forum PHP.pl > Forum > Bazy danych > MySQL
pawel.ad
Witam,

Głowię się nad tym od paru godzin.

Jak stworzyć zapytanie do bacy danych które zwróciło by dwie wartości DISTINCT.
Zapytanie:
[MYSQL] pobierz, plaintext
  1. $zapytanie = "SELECT DISTINCT Name, DISTINCT Lastname FROM $team ORDER BY Lastname";
  2. $wynik = mysql_query($zapytanie)
[MYSQL] pobierz, plaintext

nie działa
[MYSQL] pobierz, plaintext
  1. $zapytanie = "SELECT DISTINCT(Name, Lastname) FROM $team ORDER BY Lastname";
  2. $wynik = mysql_query($zapytanie)
[MYSQL] pobierz, plaintext

też nie

Szukałem, próbowałem na wiele sposobów, ale żaden nie działa. Czy ktoś mógłby mnie oświecić? smile.gif

BTW. Ten sam problem miałem z wartością AVG() dla wielu kolumn. Też nie wiedziałem jak to zrobić, i skończyło się na tym że dla każdej wartości wysyłałem osobne zapytanie, co jest trochę krótkowzroczne. Jeżeli odpowiedź nie była by taka sama, to proszę również o naprowadzenie mnie z tym problemem.
Mchl
DISTINCT jest modyfikatorem całego zapytania a nie jednej kolumny.
Kod
DISTINCT Name, Lastname
pawel.ad
I znowu wyszedłem na głupka... smile.gif
Dziękuje bardzo.

To samo będzie z AVG(), czy ten nawias coś zmienia?
Mchl
AVG() to funkcja agregująca. Zazwyczaj współpracuje z GROUP BY.

Np: średnie wartości wpłat i wypłat w rozbiciu na miesiące (pseudoSQL)

Kod
SELECT miesiac, AVG(wplaty), AVG(wyplaty) FROM transakcje GROUP BY miesiac
pawel.ad
Słowo daję że próbowałem AVG(PTS), AVG(REB) wcześniej i nie działało... ;-)

No nic, jeszcze raz dziękuje.

I ostatnie pytanie.
Jak zobaczyć ludzi o różnych nazwiskach(DISTINCT Lastname), ale tak żeby DISTINCT nie działało na pensje?
Mchl
questionmark.gif? Czyli co chciałbyś dostać z czego?
pawel.ad
Chodzi mi o zapytanie w którym DISTINCT działa tylko na jedną z kolumn, tj. Nazwiska, a nie na płace, które mogą być takie same. Coś a'la:
[MYSQL] pobierz, plaintext
  1. $zapytanie = "SELECT DISTINCT Lastname, place(*bez DISTINCT*) FROM $team ORDER BY Lastname";
  2. $wynik = mysql_query($zapytanie)
[MYSQL] pobierz, plaintext
Mchl
Załóżmy że masz dane:
Kod
lastname, place
'Kowalski', 1
'Nowak', 1
'Kowalski', 2
'Kowalski', 1


Zapytanie
Kod
SELECT DISTINCT lastname,place
zwróci Ci trzy wiersze

'Kowalski', 1
'Nowak', 1
'Kowalski', 2

Tak byś chciał, czy inaczej?
pawel.ad
Tak, o to mi chodziło.

Czyli:
[MYSQL] pobierz, plaintext
[MYSQL] pobierz, plaintext

to coś zupełnie innego od
[MYSQL] pobierz, plaintext
[MYSQL] pobierz, plaintext

tak?

Jedna przerwa, a jak wiele zmienia... ;]

Dzięki wielkie za pomoc. Można zamknąć.
Mchl
Err... nie... ta spacja nie ma znaczenia...
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.