[英]Intersection of Two Tables in SQL
基本上我需要創建一個新表,它使用來自其他兩個表的特定信息。
例如,我有一個名為 person 的表,其中包含元素 person_id、first_name、last_name、gender、age 和 fav_quote。 我有一個名為部門的第二個表,其中包含元素 dept_id、dept_name 和 building。 我現在需要創建包含 person_id 和 dept_id 元素的交集表。 並且兩者都必須是主鍵(我假設在我的源代碼中僅表示 PRIMARY KEY (person_id, dept_id) 命令)。
創建表人(
person_id INT(8) NOT NULL auto_increment,
first_name VARCHAR(25) 非空,
last_name VARCHAR(25) 非空,
性別 VARCHAR(1),
年齡 INT(8),
fav_quote 文本,
主鍵 (person_id)
);
創建表部門(
dept_id INT(8) NOT NULL auto_increment,
部門名稱 VARCHAR(25) 非空,
構建 VARCHAR(25) NOT NULL,
主鍵 (dept_id)
);
那是我最初的兩個表的代碼,我只是不確定如何創建交集,而且在回顧我的筆記后,我找不到有關如何編寫它的說明。
你的主鍵部分是對的。 我會將外鍵添加到您現有的表中,以防止與不存在的人員或部門創建交互:
CREATE TABLE person_department
person_id INT(8) NOT NULL,
dept_id INT(8) NOT NULL,
PRIMARY KEY(person_id, dept_id),
FOREIGN KEY(person_id) REFERENCES person(person_id),
FOREIGN KEY(dept_id) REFERENCES department(dept_id)
)
你需要一個有 2 個字段的表格; person_id 和 dept_id。 該表將具有兩個表個人和部門主鍵的外鍵以及兩者的復合主鍵。
此外,僅當人員與部門之間存在一對多關系時,才需要此表。 否則只需親自添加 dept_id 作為外鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.