Показать сообщение отдельно
  #1 (permalink)  
Старый 04.03.2012, 17:29
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

Логика сравнения таблиц mysql
Опять я в перегрузе.

Суть:

Веб-чат.
Есть комнаты постоянные (которые создал админ/модеры) и временные (которые создают пользователи). Есть таблица всех комнат + есть таблица пользователей online с названиями комнат, в которых они сейчас находятся.

Нужно получить одним запросом все постоянные комнаты + все временные, в которых есть хоть один пользователь. Либо наоборот, получить из временных те, где никого нет.

Две таблицы.

Первая "rooms"— "комнаты" чата:
id, room, type.

id = a_i.
room — название комнаты
type принимает значения "forever" или "time"

Вторая "sessions" — пользователи online:
id, name, lasttime, room

id = id сессии
name = имя юзера
lasttime = последняя активность
room = название комнаты, в которой находится.

Задача:
Взять из таблицы "rooms" только те комнаты, которые имеют type = "forever", и из оставшихся (с type = "time") только те, которые есть в таблице "sessions".

Делать два запроса и перебор очень долго (планируется >1000 пользователей online и каждый из них может создать по комнате, а то и по две). Нужно делать запрос со сравнением.. логику додумать не могу. Мозг отключается
__________________
С моих слов записано верно.
Ответить с цитированием