Zliczanie unikalnych wartości w wielu kolumnach |
Zliczanie unikalnych wartości w wielu kolumnach |
11.11.2012, 23:58:32
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) |
Witam serdecznie,
Właśnie pracuję nad pewnym projektem i próbuje złożyć zapytanie MySql, które zliczy mi ilość wystąpień użytkowników w tabeli. I byłoby to banalne zagadnienie, ale... Załóżmy, że mamy tabelę `friends`, która wygląda tak: Kod id | user_id | friend_id | created | accepted a w niej: Kod 1 | 1 | 2 | 2012-03-05 | 1 2 | 3 | 2 | 2012-03-05 | 1 I teraz chcę zliczyć ilość użytkowników (więc ważne są tu zarówno pola user_id i friend_id) którzy są zaprzyjaźnieni. Czy da się to zrealizować przez COUNT i GROUP BY? Osobiście próbowałem na wiele sposobów, ale ciągle zwracało mi niepoprawną liczbę (ważne jest, żeby każde ID użytkownika było zliczone tylko raz). Więc dla powyższego przykładu zapytanie powinno zwrócić 3. Czy muszę odwołać się do brzydkiej metody i zaangażować pętlę w php? proszę o pomoc, wydaje mi się że zagadnienie jest dość ciekawe. |
|
|
12.11.2012, 10:17:34
Post
#2
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) |
select (count(user_id) + count(friend_id)) as ile from ... group by user_id friend_id
powinno dzialac. j. |
|
|
12.11.2012, 17:06:31
Post
#3
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) |
Witam, dziękuję za zainteresowanie się tematem.
Niestety to nie działa, a dokładniej nie działa tak jak bym chciał. Próbowałem z tym już wcześniej. Moim zdaniem należaloby połączyć 2 kolumny w 1 i potem zrobić count, jest coś takiego możliwe? jak? btw. Zapytanie, które podałeś zwraca coś takiego (a ja tez oczekuje 1 liczby): Kod ile
2 2 |
|
|
12.11.2012, 17:35:35
Post
#4
|
|
Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) |
Powinno dać dobry wynik
ostatnie AS xxx nie ma praktycznie znaczenia możesz za xxx wstawić cokolwiek -------------------- http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
|
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 11:33 |