【问题标题】:select multiple rows form a table and insert into a different table从表中选择多行并插入到不同的表中
【发布时间】:2020-04-25 16:20:29
【问题描述】:

我有以下表格..

乘客:

| 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 |
|------------|-----------------|---------------|
|            |                 |               |
|            |                 |               |

从乘客中,我想选择 Reservation_number 为 1 的所有 Passport_number(这里是所有 3 行),然后将每个 Passport_number 插入 Ticket 表的每一行。之后,Ticket 表中 Booking_id 的所有行都必须设置为 1,因为在 Reservation_number=1 时 Booking_id 为 1(这可以在 Booking 表中看到)。我该怎么做?

【问题讨论】:

  • 我对上面的场景了解不多。但我建议你用一张表来存放乘客和票表。每个乘客只有一个护照号码和机票号码。我认为为此使用两个表是没有意义的。

标签: mysql sql join select sql-insert


【解决方案1】:

考虑insert ... select 语法。

您可以将bookingpassengersinsert的结果集加入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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多