powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
8 сообщений из 8, страница 1 из 1
Помогите с запросом
    #38439766
vak86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица фоток с ID фоток и ID альбомов, к которым они относятся. Нужно выбрать 3 фотки с 1 альбома с наибольшим ID фотки. То есть по каждому из альбомов надо иметь максимум 3 фотки которые внутри этого альбома имеют наибольший ID фотки.
...
Рейтинг: 0 / 0
Помогите с запросом
    #38439788
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите с запросом
    #38439854
vak86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ссылка интересная, но ты уверен что приведенные там примеры решат мою задачу, я просмотрев их не уверен. Вывести MAX фотку из альбома это просто конечно.
...
Рейтинг: 0 / 0
Помогите с запросом
    #38439869
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите с запросом
    #38439875
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vak86Ссылка интересная, но ты уверен что приведенные там примеры решат мою задачу, я просмотрев их не уверен. Вывести MAX фотку из альбома это просто конечно.Не все способы, конечно, легко адаптируемы, но найти наиболее подходящий все-таки можно - 7489069
...
Рейтинг: 0 / 0
Помогите с запросом
    #38440047
vak86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин переменные в sql... понятно, буду вникать, хотя вообще не стоит на это.
...
Рейтинг: 0 / 0
Помогите с запросом
    #38440084
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vak86Блин переменные в sql...Увы, аналитических функций в MySQL нет.
...
Рейтинг: 0 / 0
Помогите с запросом
    #38441548
vak86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По итогу построен такой запрос для достижения моей цели:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SET @photo_pos=0;
SET @album_id=0;
SELECT entity_id,album_id,serial_pos FROM node as gn
LEFT JOIN(
	SELECT gc.entity_id,
	IF(gc.field_gall_connect_nid<>@album_id, @photo_pos:=0, @photo_pos:=@photo_pos+1) as serial_pos,
	(@album_id:=gc.field_gall_connect_nid) as album_id
	FROM field_data_field_gall_connect as gc 
	/*HAVING serial_pos <= 2*/
	ORDER BY gc.entity_id DESC
) as serial_table ON serial_table.album_id=gn.nid AND serial_table.serial_pos < 3
WHERE gn.type='galls'
LIMIT 500



Здесь 2 этапа :
1. Создание вирт.таблицы с пронумерованными позициями фоток внутри каждого отдельного альбома.
2. Подключение (JOIN) этой таблицы к node, которая хранит некие данные про фотку.

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


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