Jak napisac sql by wybrac grupe na podstawie user_id

Odpowiedz Nowy wątek
2011-10-19 10:29
0

Nie wiem jak to powiedziec ale mam tak:
Uzytkownik A,B,C,D
Uzytkownik A,B,C ma w tabeli przypisana grupe 1
Uzytkownik A,B,c,D ma w tej samej tabeli przypisana rowniez grupe 2
I teraz jak sprawdzic majac tylko ID_USER w jakich sa grupach
i ile ta grupa liczy czlonkow
czyli pytajac o sql gdzie ID_USER IN(12,16,77)
Da w odpowiedzi ze jest taka grupa i liczy 3 czlonkow

tabela prostga wyglada tak:

ID ID_CHAT ID_USER
1 1 12
2 1 16
3 1 77
4 2 54
5 2 66
6 3 16

Pozostało 580 znaków

2011-10-19 11:03
0

group by i count twoim przyjacielem


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2011-10-19 11:10
0

ALe jak zrobie tak

 SELECT COUNT(id_chat)
FROM test
WHERE id_user IN (12,16,77)
GROUP BY id_chat

Tutaj mam wynik
count
3
1

a tutaj

 SELECT COUNT(id_chat)
FROM test
WHERE id_user IN (54,68)
GROUP BY id_chat

count
1

A chcialem zeby wybral tylko tam gdzie count = 3
a w drugim przypadku count p[owinien wyjsc 2

Pozostało 580 znaków

2011-10-19 11:16
jam
0

pobierz
ilość rekordów (wg ID czatu)
z tabeli test
gdzie id_usera zawiera się w (1,2,3)
grupuj po id czatu

trochę to bez sensu

powinieneś chyba zliczać ilość rekordów po id userów bez jakiegoś where

select . count() as razem
from tabela
group by id_chat

i wynikiem dostaniesz np:

nazwa ilość członków
blabla 3
terefere 5

Pozostało 580 znaków

2011-10-19 11:24
0

SELECT COUNT(id_chat)
FROM test
WHERE id_user IN (54,66)
GROUP BY id_chat
HAVING count(id_chat) = 2

teraz jest ok tez bo zwraca dokladnie ten jeden rekord to latwiej sie nie da juz co nie ?
ale jest zle bo jesli dodam
WHERE id_user IN (54,66,188)
to tez wysweitli wynik a pownien zwrocic nula

edytowany 1x, ostatnio: masterO, 2011-10-19 11:29

Pozostało 580 znaków

2011-10-19 11:35
0

ale co ty chcesz zrobić?? To jest wszystko bez sensu!, w szczególności to SELECT COUNT(id_chat) FROM test WHERE id_user IN (54,66) GROUP BY id_chat HAVING count(id_chat) = 2 - po co w ogóle liczyć jak ty WIESZ ile ma wyjść? To nie prościej zrobić SELECT 2 i po problemie? Też zwróci TO CO CHCESZ a o ile prostsze...

  1. dajesz większą próbkę danych wejściowych
  2. opisujesz DOKŁADNIE dla jakich warunków co chcesz otrzymać

- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2011-10-19 11:48
0

chce sprawdzic czy w tabeli wystepuja juz dane osoby o danym ID przypisane do jakiejs grupy id_chat ale nie znam id tej grupy. dane wejsciowe podaje w tablicy i wiem ile taka grupa powinna miec osob. Wiem ile ma wyjsc ale nie wiem czy to wystepuje w bazie. Bo powinno byc w IN (12,14,55) dzialajace jako AND a to jest jako OR
A nie chce sklejac z ADN id_user = 2 AND id_user = 14 itd.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0