powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Left join проблема...
14 сообщений из 39, страница 2 из 2
Left join проблема...
    #38793025
psfdek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как правильно, будьте добры.
...
Рейтинг: 0 / 0
Left join проблема...
    #38793039
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у Вас что MyISAM, InnoDB?
...
Рейтинг: 0 / 0
Left join проблема...
    #38793044
psfdek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MySQL
...
Рейтинг: 0 / 0
Left join проблема...
    #38793267
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За такой план мне бы тоже запрос не понравился на месте сервера.
Создайте индексы по полю `OEo_clients`.`office_key` и по полю `OEo_sms`.`client_login`.

И кстати, почему у вас где-то `OEo_sms`, а где-то `OTo_sms` ? Если это разные таблицы, то индексы нужны для всех.
...
Рейтинг: 0 / 0
Left join проблема...
    #38793645
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirто есть так
Код: sql
1.
2.
3.
4.
SELECT * 
FROM `OTo_sms` 
JOIN `OTo_clients` ON `OTo_sms`.`client_login` = `OTo_clients`.`client_login` 
WHERE `OEo_clients`.`office_key` = '4e6fdeec6bf2c5724476ad6daec1036a'

работает, а так
Код: sql
1.
2.
3.
4.
SELECT count(*)
FROM `OTo_sms` 
JOIN `OTo_clients` ON `OTo_sms`.`client_login` = `OTo_clients`.`client_login` 
WHERE `OEo_clients`.`office_key` = '4e6fdeec6bf2c5724476ad6daec1036a'

нет? чудеса. ну а если попробовать вот так


Так никаких чудес нет, в первом запросе результат выдаётся сразу, как только есть первые несколько сот строк.
И автор послания думает, что запрос работает быстро, поскольку до конца набора данных не долистывает .
А во втором случае запрос выдаст данные только когда посчитает все записи, удовлетворяющие всем условиям.
Это и в первом случае долго, только автор топика, видимо, это никогда не делает.
...
Рейтинг: 0 / 0
Left join проблема...
    #38793654
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНа сайте подсчет отправленных смс, недавно их перевалило за 20 000 и теперь лефт джойн не работает . Как ограничить или исправить???

SELECT count(*) FROM `{$tprefix}sms` JOIN `{$tprefix}clients` ON `{$tprefix}sms`.`client_login` = `{$tprefix}clients`.`client_login` WHERE `{$tprefix}clients`.`office_key` = '{$office_key}' {$filter_sms_q};


Выводит все смс клиентов принадлежащих к одному офису если без COUNT, а со счетчиком оно сначала показывает количество смс общее.

Подскажите пожалуйста как исправить sql запрос что бы он работал с этой большой таблицей...


tanglirто есть так
Код: sql
1.
2.
3.
4.
SELECT * 
FROM `OTo_sms` 
JOIN `OTo_clients` ON `OTo_sms`.`client_login` = `OTo_clients`.`client_login` 
WHERE `OEo_clients`.`office_key` = '4e6fdeec6bf2c5724476ad6daec1036a'

работает, а так
Код: sql
1.
2.
3.
4.
SELECT count(*)
FROM `OTo_sms` 
JOIN `OTo_clients` ON `OTo_sms`.`client_login` = `OTo_clients`.`client_login` 
WHERE `OEo_clients`.`office_key` = '4e6fdeec6bf2c5724476ad6daec1036a'

нет? чудеса. ну а если попробовать вот так?



Что-то концы с концами у подсудимого несходятся...

Я ещё раз призываю подсудимого
Опубликовать проблемный запрос.

опубликовать DDL таблиц

Объяснить, в чём же заключается собственно проблема.
...
Рейтинг: 0 / 0
Left join проблема...
    #38793835
psfdek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

это не разные просто я не сменил префикс. Не хотел вначале его палить.
...
Рейтинг: 0 / 0
Left join проблема...
    #38793982
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivОбъяснить, в чём же заключается собственно проблема.Так еще вчера в MAX_JOIN_SIZE уперлись, см. 16783381
...
Рейтинг: 0 / 0
Left join проблема...
    #38793984
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psfdekmiksoft,

это не разные просто я не сменил префикс. Не хотел вначале его палить.Нам, честно говоря, все равно какой там префикс. Главное, чтобы вы сами не запутались.

Ну как, создание индексов помогло?
...
Рейтинг: 0 / 0
Left join проблема...
    #38794844
psfdek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как создавать их?
...
Рейтинг: 0 / 0
Left join проблема...
    #38795675
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psfdekКак создавать их?

create index ...
...
Рейтинг: 0 / 0
Left join проблема...
    #38796994
psfdek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А индексы создать 1 раз нужно или каждый раз в запросе нужно делать это?
И для каких столбцов мне нужно индексы сделать?
...
Рейтинг: 0 / 0
Left join проблема...
    #38797144
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Left join проблема...
    #38797243
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psfdekА индексы создать 1 раз нужно или каждый раз в запросе нужно делать это?Индексы создаются один раз и относятся к таблице, а не к запросу. А потом уже используются оптимизатором для выполнения тех запросов, где посчитает это полезным.

psfdekИ для каких столбцов мне нужно индексы сделать?miksoftСоздайте индексы по полю `OEo_clients`.`office_key` и по полю `OEo_sms`.`client_login`.
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Left join проблема...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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