Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2019, 15:55   #1
Adult_Master
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 63
По умолчанию MySQL Update WHERE MAX(id)

Здравствуйте, помогите составить максимально оптимальный (быстрый) запрос, имеем две таблицы (все поля приводить не буду, только значимые)
1. Таблица сеансов (Seans)
2. Таблица билетов (Tickets)

В одном билете может быть до 5-ти сеансов, на каждый сеанс своя запись в таблице 1, т.е.:

Поля таблицы Seans:
ticketid - ID билета, к которому относится данный сеанс
seansid - ID сеанса

Поля таблицы Tickets
id - ID билета
status - Статус билета.

Как я уже сказал для одной записи в таблице билетов может быть несколько записей в таблице сеансов, с разными seansid

На входе в функцию имеем номер текущего сеанса, например СurrentSeansID.
вопрос вот в чём: как обновить поле STATUS только тех билетов, для которых текущий сеанс - последний ? т.е. нужно что то вроде
Код:
UPDATE Tickets SET status=value WHERE id IN ( SELECT DISTINCT ticketid FROM Seans WHERE MAX(seansid) = СurrentSeansID );
Как бы представить это выражение WHERE MAX(seansid) = СurrentSeansID ?
Adult_Master вне форума Ответить с цитированием
Старый 08.02.2019, 20:39   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

-- последние сеансы ВСЕХ билетов
Код:
select ticketsid, max(seansid)
from seans 
group by ticketsid
--а таперича те и только те
Код:
update tickets set status =value
from tickets
inner join ( select ticketsid, max(seansid) as s
             from seans
             group by t 
           ) as last on last.t =tickets.id
where last.s =current
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MySQL Update условие Xameleon666 SQL, базы данных 20 01.10.2013 15:38
Php +MySql (функция UpDate) kirill555 PHP 10 20.08.2011 15:02
(MySQL) не срабатывает UPDATE в ZEOS ChySam БД в Delphi 4 16.06.2011 10:57
PHP+MySQL. Как выполнить UPDATE таблицы? ViTYAi PHP 5 24.12.2009 10:03