Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обращение к возвращаемому занчению MySQL 5 
:(
    Опции темы
azam
Дата 26.8.2008, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 8.10.2007
Где: г. Владикавказ

Репутация: нет
Всего: нет



MySQL 5

Мне нужно подставить значение которое возвращается темно-синим кодом в места помеченные красным кодом.
Что-то слышал про то что  к возвращаемому значению обращаться нельзя. Но точно не знаю так ли это 
Как можно обратиться к  rating-у? или все-таки надо повторить темно-синий код в местах помеченных красным цветом?


SELECT l.x, m.x1, m.x2, m.x3, m.x4, m.x5, m.x6, m.x7, m.x8, m.x9, m.x10, m.x11, m.x12, m.x13,
                             (
                                   SELECT (res.vr_count/SUM(ips.vi_count))
                                   FROM sb_vote_results as res, sb_vote_ips as ips
                                   WHERE res.vr_el_id=m.ssr_id AND ips.vi_vr_ids=vote.vr_id
                                   GROUP BY ips.vi_vr_ids
                              ) AS rating

                  FROM tt m, sb_catlinks l, sb_categs c, sb_vote_results AS vote
                  WHERE c.cat_id IN (804)
                  AND c.cat_id = l.link_cat_id
                  AND l.link_el_id = m.ssr_id
                  AND m.ssr_status =0
                  AND m.ssr_show =1
                  AND vote.vr_plugin = "pl_services"
                  AND vote.vr_el_id = m.ssr_id
           AND rating > 0 AND rating < 2
                  GROUP BY m.ssr_id
                  ORDER BY c.cat_left

Это сообщение отредактировал(а) azam - 27.8.2008, 10:16
PM MAIL   Вверх
Бонифаций
Дата 26.8.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



использовать алиасы в WHERE не позволяет стандарт sql. Алиасы можно использовать  в GROUP BY, ORDER BY, или HAVING.



--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
skyboy
Дата 26.8.2008, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



вынеси подзапрос из списка полей. сделай к этому подзапросу join.

Добавлено через 1 минуту
а что в логике запроса мешает вынести таблицы из подзапроса в left join?
PM MAIL   Вверх
azam
Дата 27.8.2008, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 8.10.2007
Где: г. Владикавказ

Репутация: нет
Всего: нет



Цитата

вынеси подзапрос из списка полей. сделай к этому подзапросу join.

Добавлено через 1 минуту
а что в логике запроса мешает вынести таблицы из подзапроса в left join?



Что-то у меня не совсем получается. Можно пример как это должно быть.
PM MAIL   Вверх
azam
Дата 27.8.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 8.10.2007
Где: г. Владикавказ

Репутация: нет
Всего: нет



Цитата

а что в логике запроса мешает вынести таблицы из подзапроса в left join?


Получилость что-то вроде этого, но все равно не могу избавиться от подзапросов в WHERE. Можно как-нибудь это сделать??????

Код

SELECT l.x, m.x, m.x1, m.x2, m.x3, m.x4, m.x5, m.x6, m.x7, m.x8, m.x9, m.x10, m.x11, m.x11, (res.vr_count/SUM(ips.vi_count))

                  FROM tt m, sb_catlinks l, sb_categs c, sb_vote_results vote, 

sb_vote_results as res left join sb_vote_ips as ips on ips.vi_vr_ids=res.vr_id

                  WHERE c.cat_id IN (804)
                  AND c.cat_id = l.link_cat_id
                  AND l.link_el_id = m.ssr_id
                  AND m.ssr_status =0
                  AND m.ssr_show =1
                  AND vote.vr_plugin = "pl_services"
                  AND vote.vr_el_id = m.ssr_id
                  AND res.vr_el_id=m.ssr_id

 AND                     (
                                   SELECT (res.vr_count/SUM(ips.vi_count))
                                   FROM sb_vote_results as res, sb_vote_ips as ips
                                   WHERE res.vr_el_id=m.ssr_id AND ips.vi_vr_ids=vote.vr_id
                                   GROUP BY ips.vi_vr_ids
                              ) > 0 AND                  (
                                   SELECT (res.vr_count/SUM(ips.vi_count))
                                   FROM sb_vote_results as res, sb_vote_ips as ips
                                   WHERE res.vr_el_id=m.ssr_id AND ips.vi_vr_ids=vote.vr_id
                                   GROUP BY ips.vi_vr_ids
                              ) < 2

                  GROUP BY m.ssr_id, ips.vi_vr_ids
                  ORDER BY c.cat_left

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.