powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос по 3ем таблицам MySQL
4 сообщений из 4, страница 1 из 1
Запрос по 3ем таблицам MySQL
    #38533770
GodUnreal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 3 таблицы

1ая - history:
id, user, group, type, object, time, status
В ней хранится "история", где user - id пользователя, у которого произошло событие
group - id группы, у которой произошло событие (к примеру, публикация записи)
Причем, либо user, либо group равняется "0", т.к. событие не можем происходить одновременно у группы и пользователя.

2ая таблица friends:
id, with, status, time
здесь id и with - id пользователей, которые "дружат" друг с другом при status = 1

3ая таблица members_group (участники групп):
user, group, time, level
здесь user - id пользователя, group - id группы, в которой user состоит.

Есть следующий запрос.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT history.type,history.object,history.group AS hgroup,history.time,history.id,history.status,history.user AS huser ,friends.id,friends.with,members_group.user,members_group.group FROM history,friends,members_group WHERE 
(((friends.id=history.user OR friends.with=history.user) AND ((friends.id=$check_session[id] OR friends.with=$check_session[id] AND friends.active=1) OR (friends.id=$check_session[id]))) 
OR
(history.group=members_group.group AND members_group.user=$check_session[id] AND history.type='group_wall'))
AND history.status=1
GROUP BY history.id ORDER BY history.time DESC
LIMIT $begin_user,10



Данные он выводит верно. Все замечательно. Кроме одного.
Запрос выполняется очень долго... php зависает на несколько минут после выполнения запроса.

Можете помочь оптимизировать запрос и подсказать, что делать?

Пробовал перестроить запрос с INNER JOIN для оптимизации с ключами - не получилось составить сам запрос...

Буду безумно благодарен за помощь!
...
Рейтинг: 0 / 0
Запрос по 3ем таблицам MySQL
    #38533781
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторGROUP BY history.id
не все поля входят в аггрегаты или group by
...
Рейтинг: 0 / 0
Запрос по 3ем таблицам MySQL
    #38533798
GodUnreal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал с другими полями в GROUP BY, различные комбинации
по EXPLAIN лучше не стало, только увеличилось количество rows у members_group
...
Рейтинг: 0 / 0
Запрос по 3ем таблицам MySQL
    #38533835
GodUnreal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно закрывать тему. Вопрос решен.
Всем спасибо!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос по 3ем таблицам MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]