簡體   English   中英

在MySql中,如何將數據插入引用其他三個表的表中,然后選擇該數據?

[英]In MySql, how do I insert data into a table that references three other tables, and then select that data?

我有一個appointment表,該表引用了其他三個表: counselorclientroom 我需要將這三個表中的數據插入appointment表中。 我創建了appointment表,如下所示:

create table appointment(
    AppointmentID int default next value for NDFCID primary key,
    CounselorID int not null references counselor,
    ClientID int not null references client,
    RoomNumber int not null references room,
    AppointmentDate date,
    StartTime time(0),
    Duration varchar(50)
);

在將數據插入到其他三個表中之后,我想將數據插入到約會中,這就是我到目前為止所擁有的:

insert into appointment(counselor.firstName, client.firstName, room.RoomName, AppointmentDate,StartTime,Duration)
  values
  ('Audrey', 'Sarah', 'Clear sky', '10/1/2014', '8:00:00', '90');

有什么方法可以使我不必將字符串名稱硬編碼到插入中,而只需從表中引用它們嗎? 我想在appointment插入許多值。 插入后,如何選擇要顯示的數據? 我應該在insert語句中選擇所有內容並將其加入,還是會在之后出現?

您可以使用SELECT語句從其他具有特定名稱的表中獲取ID。

INSERT INTO appointment (CounselorID, ClientID, RoomNumber, AppointmentDate, StartTime, Duration)
SELECT c.id, cl.id, r.roomNumber, "10/1/2014", "8:00:00", "90"
FROM counselor AS c
CROSS JOIN client AS cl
CROSS JOIN room AS r
WHERE c.firstName = "Audrey"
AND cl.firstName = "Sarah"
AND r.roomName = "Clear sky"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM