Mysql - count i dwie tabele

0

Siema. Mam pewien problem.

Otóż mam dwie tabele, jedna z sesjami użytkowników

session_id room_id
xxxx 1
xxxx 1
xxxx 1
xxxx 1
xxxx 1
xxxx 1
0

Przepraszam przez przypadek wysłałem ten pierwszy niedokończony post...

Pierwsza tabela:

session_id room_id
xxxdfx 1
xxgfxx 2
xxxxx 1
xxdfxxx 2
xxxfx 1
xdfxxx 1

Druga:

room_id room_name
1 Main
2 NotMain

A mój cel to otrzymanie takiego wyniku:

room_id room_name ilosc osob w pokoju
1 Main 4
2 NotMain 2

Sęk w tym że nie wiem jak zliczyć ile osób siedzi w danym pokoju. Próbowałem z count no ale nie wiem czy dobrze kombinuje bo na razie nic mi nie wychodzi.

Nakieruje mnie ktoś na rozwiązanie problemu?

0

Tak, COUNT to jest dobry trop.

0

LEFT JOIN, COUNT, GROUP

1
select d.room_id, d.room_name, count(p.session_id) from Druga as d inner join Pierwsza as p
group by d.room_id, d.room.name

edit: oczywiście jak chcesz mieć w wynikach także puste pokoje to musisz zrobić

left outer join

zamiast inner joina

0

dziękuje bardzo za odpowiedzi.

Mam jeszcze jeden problem. Za pomocą jednego zapytania chciałbym usunąć wszystkie puste pokoje. Przykładowe tabele:

session_id room_id
xdd 1
xddsad 3
xdasdd 3
xdaad 1
xdafgd 1
xdhdsd 3
xdghasd 1
xasddd 1
xdsd 1
room_id room_name
1 Pokój 1
2 Pokój 2
3 Pokój 3
4 Pokój 4

Próbowałem czymś takim:

DELETE p.* FROM pokoje p LEFT OUTER JOIN sesje s ON s.room_id = p.room_id WHERE s.room_id = NULL

No ale nie za bardzo to działa. Ma ktoś jakiś pomysł?

0

INNER JOIN

0

ok, rozwiązałem ten problem. Wystarczyło:

s.room_id = NULL

Zamienić na:

s.room_id IS NULL

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