Учебно-практическое пособие москва 2017 ббк


SELECT * FROM tickets_directions WHERE tickets_num > 0



Pdf көрінісі
бет170/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   166   167   168   169   170   171   172   173   ...   243
Байланысты:
Язык SQL. Базовый курс

SELECT * FROM tickets_directions WHERE tickets_num > 0;
--[ RECORD 1 ]----+---------------------------
departure_city
| Сочи
arrival_city
| Красноярск
last_ticket_time | 2017-02-04 21:15:32.903687
tickets_num
| 1
Представим другой вариант этой команды. Его принципиальное отличие от перво-
го варианта заключается в том, что для определения обновляемой строки в таблице
tickets_directions используется
операция соединения таблиц
. Здесь в главном за-
просе UPDATE присутствует предложение FROM, однако в этом предложении указы-
вается только таблица (представление) flights_v, а таблицу tickets_directions в пред-
ложение FROM включать не нужно, хотя она и участвует в выполнении соединения
таблиц. Конечно, в предложении SET присваивать новые значения можно только ат-
рибутам таблицы tickets_directions, поскольку именно она приведена в предложении
UPDATE.
WITH sell_ticket AS
( INSERT INTO ticket_flights_tmp
(ticket_no, flight_id, fare_conditions, amount )
VALUES ( '1234567890123', 7757, 'Economy', 3400 )
RETURNING *
174


)
UPDATE tickets_directions td
SET last_ticket_time = CURRENT_TIMESTAMP,
tickets_num = tickets_num + 1
FROM flights_v f
WHERE td.departure_city = f.departure_city
AND td.arrival_city
= f.arrival_city
AND f.flight_id = ( SELECT flight_id FROM sell_ticket );
UPDATE 1
Посмотрим, что получилось.
SELECT * FROM tickets_directions WHERE tickets_num > 0;
--[ RECORD 1 ]----+---------------------------
departure_city
| Сочи
arrival_city
| Красноярск
last_ticket_time | 2017-02-04 21:15:32.903687
tickets_num
| 1
--[ RECORD 2 ]----+---------------------------
departure_city
| Москва
arrival_city
| Сочи
last_ticket_time | 2017-02-04 21:18:40.353408
tickets_num
| 1
Чтобы увидеть комбинированную строку, которая получилась при соединении таб-
лиц tickets_directions и flights_v, можно включить в команду UPDATE предложение
RETURNING *.


Достарыңызбен бөлісу:
1   ...   166   167   168   169   170   171   172   173   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет