Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Duplikat rekodów
Forum PHP.pl > Forum > Bazy danych > MySQL
NoSleep2
Witam,
Mam pewne zapytanie :
  1. SELECT DISTINCT n.name AS User, n.passwd AS PASSWORD, inet_ntoa(ipaddr) AS IP_KLIENT, t.name AS Taryfa FROM nodes n, nas, nodeassignments AS na, assignments AS a, tariffs AS t WHERE n.nasid = nas.id AND n.id = na.nodeid AND na.assignmentid = a.id AND a.tariffid = t.id AND nas.nasname ='Tutaj IP' ORDER BY nas.id DESC;


Z tego zapytania wychodzi mi wynik:
np:
User | PASSWORD | IP_KLIENT | Taryfa
+--------------+---------------------+-------------+----------------+--------------
cze****@**** | ******** | Tutaj IP Klienta | NT4-8MB/2,5MB
marvzena@**** | ******** | Tutaj IP Klienta | NT5-10MB/3MB
kar**ol@**** | ******** | Tutaj IP Klienta | NT6-12MB/3,5MB
jsluv**pik@**** | ******** | Tutaj IP Klienta | Internet-Pakiet Złoty
mwa**tola@**** | ******** | Tutaj IP Klienta | NT4-8MB/2,5MB
dgl**owa@**** | ******** | Tutaj IP Klienta | NT4-8MB/2,5MB
rkapi****ca@**** | ******** | Tutaj IP Klienta | NT5-10MB/3MB
blu****ks@**** | ******** | Tutaj IP Klienta | NT7-16MB/4MB
jhan****usek@** | ******** | Tutaj IP Klienta | NT3-6MB/2MB

W powyższym wyniku parę razy powtarza się : "NT4-8MB/2,5MB".
Nie wiem jak zrobić, żeby taryfa nie powtarzałą się:
Proszę o pomoc

Pozdrawiam
trueblue
Jaki chcesz otrzymać wynik na podstawie tej próbki danych?
NoSleep2
Np.:
User | PASSWORD | IP_KLIENT | Taryfa
+--------------+---------------------+-------------+----------------+--------------
cze****@**** | ******** | Tutaj IP Klienta | NT4-8MB/2,5MB
marvzena@**** | ******** | Tutaj IP Klienta | NT5-10MB/3MB
kar**ol@**** | ******** | Tutaj IP Klienta | NT6-12MB/3,5MB
jsluv**pik@**** | ******** | Tutaj IP Klienta | Internet-Pakiet Złoty
mwa**tola@**** | ******** | Tutaj IP Klienta |
dgl**owa@**** | ******** | Tutaj IP Klienta |
rkapi****ca@**** | ******** | Tutaj IP Klienta |
blu****ks@**** | ******** | Tutaj IP Klienta | NT7-16MB/4MB
jhan****usek@** | ******** | Tutaj IP Klienta | NT3-6MB/2MB
trueblue
  1. SELECT user, password, ip_klient, IF(@poprzednia_taryfa<>taryfa,taryfa,''), IF(@poprzednia_taryfa<>taryfa,@poprzednia_taryfa:=taryfa, TRUE)
  2. FROM tabela,(SELECT @poprzednia_taryfa:='') AS poprzednia_taryfa
  3. ORDER BY taryfa

Ale wydaje mi się, że będzie to zupełnie nieprzydatne dla Ciebie i okaże się, że jednak oczekujesz innego wyniku niż podałeś.
NoSleep2
ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_polish_ci,IMPLICIT) for operation '<>'
trueblue
Pozmieniaj
  1. @poprzednia_taryfa<>taryfa

na
  1. @poprzednia_taryfa<>taryfa COLLATE utf8_polish_ci
lub
  1. @poprzednia_taryfa<>taryfa COLLATE utf8_general_ci
NoSleep2
Super działa dzięki za pomoc !
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.