Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите разобраться / 6 сообщений из 6, страница 1 из 1
09.02.2017, 20:59
    #39401907
VladLoboda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться
Всем привет Помогите разобраться, а то никак не могу вкурить что не так. Нужно из подзапроса вытащить все данные при минимальном значении одного из параметров.
Есть таблица testing в которой лежат R,G,B,USAGE
Мой запрос :

Код: sql
1.
2.
3.
4.
5.
SELECT R,G,B
FROM(
SELECT R,G,B,(testing.USAGE) as u
FROM testing order by sqrt((pow((R - 100),2)+pow((G - 100),2)+pow((B - 100),2))) LIMIT 5) as AAA
WHERE u = (SELECT MIN(u) FROM AAA);



Ругается на выборку ААА. Не могу понять чем структура такого запроса отличается от
Код: sql
1.
2.
SELECT * FROM photomosaic.testing
where testing.USAGE = (SELECT MIN(testing.USAGE) from testing);



ведь вроде все тоже самое, но второй вариант работает а первый нет(
...
Рейтинг: 0 / 0
09.02.2017, 22:31
    #39401930
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться
VladLoboda,

вместо AAA напишите ещё раз полностью подзапрос
...
Рейтинг: 0 / 0
09.02.2017, 22:51
    #39401935
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT AAA.R,AAA.G,AAA.B
FROM (
      SELECT t.R,t.G,t.B,(t.USAGE) u
      FROM testing t
      ORDER BY pow((t.R - 100),2)+pow((t.G - 100),2)+pow((t.B - 100),2)
      LIMIT 5
      ) AAA
ORDER BY AAA.u ASC 
LIMIT 1
...
Рейтинг: 0 / 0
09.02.2017, 22:54
    #39401936
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться
Стоп, не так, невнимательно посмотрел.
...
Рейтинг: 0 / 0
10.02.2017, 05:47
    #39401964
VladLoboda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться
Akina, сделал в итоге похожим способом
Код: sql
1.
2.
3.
select * FROM(
SELECT  R,G,B,(testing.USAGE) as u,sqrt((pow((R - 200),2)+pow((G - 200),2)+pow((B - 200),2))) as AAA 
	FROM testing  order by AAA LIMIT 5) as a order by u limit 1;


Сам вопрос то, почему вложенный подзапрос в условии потом не видно было?
...
Рейтинг: 0 / 0
10.02.2017, 07:42
    #39401977
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться
VladLobodaпочему вложенный подзапрос в условии потом не видно было?Потому что он находится за пределами области видимости. Подзапросы не кэшируются и, соответственно, не используются повторно.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите разобраться / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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