Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка по связям одной из последних по счёту записей / 13 сообщений из 13, страница 1 из 1
15.01.2016, 03:12
    #39147844
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
Например, нужно сделать выборку восьмой с конца записи, но не знаю, как правильный синтаксис сформировать.
Пишет что-то про нарушение синтаксиса насчёт лимитов в подзапросе.
Спасибо.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT 
    `s`
FROM
    `k-ts`
        JOIN
    `k-t_s` ON `k-ts`.`ids` = `k-t_s`.`id_s`
        AND `k-t_s`.`id_n` = (SELECT 
            `idn`
        FROM `k-tn` where `idn` in
            (SELECT 
                `idn`
            FROM
                `k-tn`
            ORDER BY `idn` DESC
            LIMIT 8)
        LIMIT 1);
...
Рейтинг: 0 / 0
15.01.2016, 05:21
    #39147852
Выборка по связям одной из последних по счёту записей
andrejk,

F.A.Q.: - Нумерация строк и другие вопросы про использование переменных
...
Рейтинг: 0 / 0
15.01.2016, 09:16
    #39147906
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
andrejkПишет что-то про нарушение синтаксиса насчёт лимитов в подзапросе.
Не что-то, а явно указывает, что LIMIT в подзапросах не допускается.

andrejkкак правильный синтаксис сформировать.
Оформите подзапрос как вьюв.

andrejkнужно сделать выборку восьмой с конца записи
Ваш запрос, если бы работал, отдавал бы случайную запись из 8 последних.
...
Рейтинг: 0 / 0
15.01.2016, 09:55
    #39147963
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT  `s`
FROM `k-ts`
INNER JOIN `k-t_s` ON `k-ts`.`ids` = `k-t_s`.`id_s`
WHERE `k-t_s`.`id_n` = (
            SELECT `idn`
        	FROM (SELECT `idn`
            	  FROM `k-tn`
                  ORDER BY `idn` DESC
                  LIMIT 8) t
        	ORDER BY `idn` ASC LIMIT 1);

а так?
...
Рейтинг: 0 / 0
15.01.2016, 10:12
    #39147979
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
Во навертел-то... на зачем тебе вообще на поставленной задаче WHERE? Убери весь этот хлам в секцию FROM.
...
Рейтинг: 0 / 0
15.01.2016, 10:24
    #39147995
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
Akina,

что то не въеду как это в from воткнуть, мб where на and поменять? Покажи как оптимально решить эту задачу
...
Рейтинг: 0 / 0
15.01.2016, 10:45
    #39148020
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
Формально так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT ...
FROM k-ts
JOIN (
        SELECT ...
        FROM (
                  SELECT ...
                  FROM k-t_s
                  ORDER BY idn DESC
                  LIMIT 8
                 )
        ORDER BY idn ASC
        LIMIT 1
        )
ON ...


Остаётся это привести к требованиям синтаксиса.
...
Рейтинг: 0 / 0
15.01.2016, 11:01
    #39148041
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
эм... а писать LIMIT 7,1 нынче не модно?
...
Рейтинг: 0 / 0
15.01.2016, 11:07
    #39148050
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
miksoftписать LIMIT 7,1 нынче не модно?Модно. Но мне почему-то кажется, что восьмёрка в данном случае параметр, а не константа.
...
Рейтинг: 0 / 0
15.01.2016, 11:09
    #39148052
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
Akinamiksoftписать LIMIT 7,1 нынче не модно?Модно. Но мне почему-то кажется, что восьмёрка в данном случае параметр, а не константа.Ну и что? Обе формы синтаксиса (LIMIT 7,1 и LIMIT 8) ведут себя одинаково с этой точки зрения.
...
Рейтинг: 0 / 0
15.01.2016, 13:55
    #39148228
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
Товарищи, спасибо, тока при шёл, буду разбираться с вашими предложениями. Думаю, полезно будет переменные изучить, я с таким не сталкивался, только джоины верх моего умения. Что ещё поискать, чтоб такие запросы создавать?
...
Рейтинг: 0 / 0
15.01.2016, 14:28
    #39148265
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
andrejkЧто ещё поискать, чтоб такие запросы создавать?
Читать основы и теорию. И не просто читать - изучать плотно. Тренировать логику и запоминать типовые методы в типовых ситуациях.
Ну а соображалку - ту не найти, она либо есть, либо увы...
...
Рейтинг: 0 / 0
15.01.2016, 22:48
    #39148570
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по связям одной из последних по счёту записей
Я б, может, и не спрашивал на форуме, но у меня иная ситуация, пере до мной нет повседневных задач, так что плотно в любом случае не получится — всё забудется. У меня периодически возникают вопросы в текущем деле и тут проще посмотреть решение и по нему уже подтягивать теорию для «сдесь и сейчас». Вот в таких точечных моментах плотно получается. Нет, конечно, база есть, общие представления тоже есть, не на голом синтаксисе сижу, в этом плане всё хорошо прикрыто, но иногда такое нужно, что не знаешь даже по какому запросу искать.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка по связям одной из последних по счёту записей / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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