Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не получаются вложенные запросы / 14 сообщений из 14, страница 1 из 1
17.06.2005, 15:12
    #33122098
Илья*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Нужно сделать достаточно простую вещь:
Сначала из базы по заданному условию выбрать только первые десять записей.
Затем из найденных записей выбрать записи, отвечающие ещё одному условию.
Как это сделать одним запросом?
Подозреваю, что с помощью вложенного запроса но вот то, что я пробывал, постоянно выдают синтаксическую ошибку.
...
Рейтинг: 0 / 0
17.06.2005, 15:23
    #33122139
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Ну что тебе сказать про Сахалин ? Он большой, про всё сразу и не скажешь...
Но есть подозрение, что ошибка у тебя в 17 строке.
...
Рейтинг: 0 / 0
17.06.2005, 15:40
    #33122184
Илья*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Я себе это представлял вот так, но это не работает:
SELECT DISTINCT word
FROM main
WHERE word IN (
SELECT word
FROM main
LIMIT 0,10 )
...
Рейтинг: 0 / 0
17.06.2005, 15:41
    #33122188
Welly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Илья*Подозреваю, что с помощью вложенного запроса но вот то, что я пробывал, постоянно выдают синтаксическую ошибку.
Подозреваю, что ваш сервер надо проверить на совместимость с этой фичей. Подсказываю, версия должна быть >= 4.1
...
Рейтинг: 0 / 0
17.06.2005, 15:59
    #33122243
Илья*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Да, Вы оказались правы:
MySQL 4.0.18 на localhost

Ну надо же! Потратил часа 3 на то чтобы это узнать! :-((

Есть ли другой выход решить указанную задачу?
...
Рейтинг: 0 / 0
17.06.2005, 16:01
    #33122251
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Илья*Я себе это представлял вот так, но это не работает:
SELECT DISTINCT word
FROM main
WHERE word IN (
SELECT word
FROM main
LIMIT 0,10 )

Вложенный запрос (которые поддерживаются с 4.1) бессмысленен без сортировки.
А во-вторых, почему не написать
Код: plaintext
1.
2.
SELECT DISTINCT word
FROM main
LIMIT  0 , 10 
?
...
Рейтинг: 0 / 0
17.06.2005, 16:07
    #33122269
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Johnmen
Вложенный запрос (которые поддерживаются с 4.1) бессмысленен без сортировки

А почему?
...
Рейтинг: 0 / 0
17.06.2005, 16:07
    #33122271
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Berkut Johnmen
Вложенный запрос (которые поддерживаются с 4.1) бессмысленен без сортировки

А почему?

Потому, что не определён порядок выдачи.
...
Рейтинг: 0 / 0
17.06.2005, 16:35
    #33122343
Илья*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Johnmen
А во-вторых, почему не написать
Код: plaintext
1.
2.
SELECT DISTINCT word
FROM main
LIMIT  0 , 10 
?

не подходит для моей задачи (я не совсем верный пример привел). Вот что мне нужно
сначала идёт запрос:
SELECT * FROM main WHERE ass IS NOT NULL ORDER BY ratio LIMIT 0,10
а потом уже из полученных результатов надо
SELECT DISTINCT word FROM (полученные результаты после первого запроса)
...
Рейтинг: 0 / 0
17.06.2005, 16:42
    #33122358
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Илья* Johnmen
А во-вторых, почему не написать
Код: plaintext
1.
2.
SELECT DISTINCT word
FROM main
LIMIT  0 , 10 
?

не подходит для моей задачи (я не совсем верный пример привел). Вот что мне нужно
сначала идёт запрос:
SELECT * FROM main WHERE ass IS NOT NULL ORDER BY ratio LIMIT 0,10
а потом уже из полученных результатов надо
SELECT DISTINCT word FROM (полученные результаты после первого запроса)

Так в чём проблема ?

Код: plaintext
SELECT DISTINCT word FROM main WHERE ass IS NOT NULL ORDER BY ratio LIMIT  0 , 10 

ЗЫ Интересное название поля - "задница"
...
Рейтинг: 0 / 0
17.06.2005, 16:42
    #33122361
RFT
RFT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Выбирать людей по размеру задницы хочешь? Самых толстых? Или самых красивых???
...
Рейтинг: 0 / 0
17.06.2005, 16:49
    #33122384
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
JohnmenПотому, что не определён порядок выдачи.
Дык, а разве не все ли равно определен порядок выдачи во вложенном запросе или нет (в общем случае)? Иногда ведь реально возникают задачи, например, выбрать строки из таблицы, совпадающие по значениям строк из другой. В последнем случае строки второй таблицы могут выбираться только лишь соответствуя какому-то ограничению в предложении WHERE ....
...
Рейтинг: 0 / 0
17.06.2005, 17:04
    #33122420
Илья*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Johnmen
Так в чём проблема ?

Код: plaintext
SELECT DISTINCT word FROM main WHERE ass IS NOT NULL ORDER BY ratio LIMIT  0 , 10 

ЗЫ Интересное название поля - "задница"

Нет, не выйдет. В этом случае она отберёт 10 различных word из всей базы (и отсортирует найденное по ratio), а мне надо, чтобы она сначала отсортировала все записи по ratio, а потом выбрала из первых десяти различные word.

Название поля ass, сокращенное от assasiation (ассоциация). Когда я его выбирал, подумал, да всё-равно никто не увидит, зато прикольно. Ошибся...:-)
...
Рейтинг: 0 / 0
17.06.2005, 19:29
    #33122713
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаются вложенные запросы
Илья*Да, Вы оказались правы:
MySQL 4.0.18 на localhost

Ну надо же! Потратил часа 3 на то чтобы это узнать! :-((

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


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