powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация запроса
8 сообщений из 8, страница 1 из 1
Оптимизация запроса
    #38516544
Новичек82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот есть такой запрос.
автор$sql = "SELECT u.id,
u.email,
u.createtime,
u.lastvisit,
u.first_name,
u.last_name,
u.gender,
IFNULL(u.locale,'') as `locale`,
u.service,
IFNULL(u.service_id,'') as `service_id`,
IFNULL(u.photo,'') as `photo`,
IF((SELECT show_location FROM {{user_settings}} WHERE user_id=u.id)=0, '', IFNULL(u.location,'')) as location,
IF((SELECT show_location FROM {{user_settings}} WHERE user_id=u.id)=0, '', IFNULL(u.state,'')) as state,
IF((SELECT show_location FROM {{user_settings}} WHERE user_id=u.id)=0, '', IFNULL(u.city,'')) as city,
IFNULL(u.about_me,'') as `about_me`,
lev.picture as level_url,
lev.level as loyalty_level,
s.show_clubs AS `show_clubs`,
'0' AS 'points',
(SELECT SUM(points) FROM {{user_points}} WHERE user_id=u.id) as points,
IFNULL((SELECT show_location FROM {{user_settings}} WHERE user_id=u.id),1) as show_location
FROM tbl_users u
LEFT JOIN {{user_settings}} s ON s.user_id=u.id
LEFT JOIN {{reward_levels}} lev ON u.loyalty_level=lev.id
WHERE u.id IN ($inQuery);";

Мне не нравится , что уже есть один результат,
автор(SELECT show_location FROM {{user_settings}} WHERE user_id=u.id)=0
но его постоянно надо запрашивать для других колонок, как это решить
...
Рейтинг: 0 / 0
Оптимизация запроса
    #38516576
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новичек82,

если вопрос по SQL - используйте переменные
если по РНР - используйте переменные
...
Рейтинг: 0 / 0
Оптимизация запроса
    #38516605
Новичек82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
artas,
Вы бы запрос посмотрели, как я бы использовал php переменную, если например у меня id штук 1000, что 1000 запросов, бред.
Чисто в SQL как это сделать.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #38516703
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новичек82Вы бы запрос посмотрели, как я бы использовал php переменную, если например у меня id штук 1000, что 1000 запросов, бред.
Чисто в SQL как это сделать.
Не вижу в том никакого бреда.
Есть, конечно, и альтернативное решение - формирование списка из этих 1000 ИДов и получение всего массива данных одним запросом.
Есть и промежуточные решения - например, полдучать пакеты данных для 10 или там 30 ИДов...
А вот какое решение оптимально - в каждом случае решается индивидуально.

PS. ПХП-хлам из запроса следует выбрасывать. И использовать тег SQL-кода.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #38516721
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новичек82,

а зачем вы 5 раз выбираете из юзер-сеттингс
таблицы, когда у вас уже есть связка
в ФРОМ секции?

тут что-то не так или одно из двух (С).
...
Рейтинг: 0 / 0
Оптимизация запроса
    #38516774
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новичек82Чисто в SQL как это сделать.

select ...
@a:=(SELECT show_location FROM {{user_settings}} WHERE user_id=u.id),
if(@a=0, ...
...
Рейтинг: 0 / 0
Оптимизация запроса
    #38519608
Новичек82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
retvizan,

А одним запросом, из php ведь вызываю
...
Рейтинг: 0 / 0
Оптимизация запроса
    #38519628
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новичек82,

а чем тут не один запрос ?
retvizan вам все правильно написал
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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