выделите несколько строк в таблицу и вставьте в другую таблицу - PullRequest
1 голос
/ 25 апреля 2020

У меня есть следующие таблицы ..

Пассажиры:

| Reservation_number | Passport_number | Full_name |
|--------------------|-----------------|-----------|
| 1                  | 1               | abc       |
| 1                  | 2               | def       |
| 1                  | 3               | ghi       |

Бронирование:

| Booking_id | Reservation_number | Card_number | Price |
|------------|--------------------|-------------|-------|
| 1          | 1                  | 6767        | 460   |

Билет:

| Booking_id | Passport_number | Ticket_number |
|------------|-----------------|---------------|
|            |                 |               |
|            |                 |               |

От Пассажиры, я хочу выбрать все Passport_number, для которых Reservation_number равен 1 (здесь это все 3 строки), а затем вставить каждый из этих Passport_number в каждый ряд таблицы Ticket. После этого все строки для Booking_id в таблице Ticket должны быть установлены на 1, поскольку Booking_id равен 1 для Reservation_number = 1 (это можно увидеть в таблице бронирования). Как я могу это сделать?

1 Ответ

1 голос
/ 25 апреля 2020

Рассмотрим синтаксис insert ... select.

Вы можете объединить booking и passengers и insert набор результатов в ticket следующим образом:

insert into ticket(booking_id, passport_number, ticket_number)
select b.booking_id, b.reservation_number, p.passport_number
from booking b
inner join passengers p on p.reservation_number = b.reservation_number
...