[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как заюзать переменную, содержащую значение подзапроса
Zzepish
SELECT
*,
IFNULL((SELECT
SUM(`rating`)
FROM
`shop_rating`
WHERE
`shop_rating`.`shop_id` = `user_response`.`user_id`
GROUP BY `shop_id`
ORDER BY `shop_rating`.`date` DESC
LIMIT
1),0) AS rating,

(
SELECT
`shop_rating`.`date` as rating_id
FROM
`shop_rating`
WHERE
`shop_rating`.`response_id` = `user_response`.`id`
AND
`shop_rating`.`date` >= NOW() - INTERVAL 1 HOUR) as rating_last_date

FROM
`user_response`
WHERE
`user_response`.`is_accepted` = 1
AND
`user_response`.`is_confirmed_by_shop` = 0
AND
`user_response`.`created_at` < NOW() - INTERVAL 1 HOUR
AND
rating_last_date IS NOT NULL


Выдает ошибку:
Цитата
#1054 - Unknown column 'rating_last_date' in 'where clause'
killer8080
...
HAVING rating_last_date IS NOT NULL
Zzepish
killer8080
Большое спасибо!
twin
Интересно... Как я помню, твой тимлид ругался на тяжелые запросы. И требовал джоины в php перенести. А почему он на эту конструкцию тогда не ругается: :)
NOW() - INTERVAL 1 HOUR
это достаточно "энергоемкая" операция.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Valick
twin, вычитание это энергоёмкая операция?


_____________
Стимулятор ~yoomoney - 41001303250491
twin
Цитата (Valick @ 8.09.2016 - 13:07)
twin, вычитание это энергоёмкая операция?
Я имею ввиду всю конструкцию.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Zzepish
twin
Я ее ему не показывал biggrin.gif
twin
Вообще это конечно шутка. smile.gif Но в каждой шутке...

У нас SQL-админ ругается на это. Гораздо быстрее работает готовый запрос, без функций. Когда время вычисляется на стороне PHP. Но у нас очень большая интенсивность запросов и это имеет значение. А если запрсов не много, то конечно удобнее так.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Kusss
Zzepish
тебе удобно такое форматирование запроса ?
Kusss
SELECT
*,
IFNULL (
(

SELECT
SUM(`rating`)
FROM
`shop_rating`
WHERE
`shop_id` = u.`user_id`
GROUP BY
`shop_id`
ORDER BY
`shop_rating`.`date` DESC
LIMIT
1
) ,0
) AS rating,
(

SELECT
`date`
FROM
`shop_rating`
WHERE
`response_id` = u.`id` AND
`date` >= NOW() - INTERVAL 1 HOUR
) as rating_last_date
FROM
`user_response` AS u
WHERE
u.`is_accepted` = 1 AND
u.`is_confirmed_by_shop` = 0 AND
u.`created_at` < NOW() - INTERVAL 1 HOUR AND
HAVING

rating_last_date IS NOT NULL
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.