簡體   English   中英

如何在一個表中使用另一個表中的FK填充我的FK列?

[英]How can I populate my FK column in one table with the FK from another table?

我有一個足球世界杯數據庫。 這是我正在研究的兩個重要表格:

CREATE TABLE Countries(
   Cid SERIAL PRIMARY KEY,
   Name VARCHAR(256) NOT NULL UNIQUE
);

CREATE TABLE Clubs(
   Ncid SERIAL PRIMARY KEY,
   Name VARCHAR(256) NOT NULL UNIQUE,
   Cid INT REFERENCES Countries NOT NULL
);

所以我在俱樂部表格中添加了一個列“國家”,代表俱樂部所在的國家。現在的問題是我需要填寫俱樂部表的cid列,其中cid與國家/地區表中的國家/地區相匹配。

我試過這個並沒有用:

ALTER TABLE clubs ADD COLUMN country VARCHAR(255)
INSERT INTO clubs(name, country) 
SELECT DISTINCT club_name, club_country 
FROM tempsquads; //this loads the data from a temporary tabe into my table

INSERT INTO clubs(cid) 
SELECT cid 
FROM countries 
WHERE clubs.country = countries.name;

有誰知道如何執行這樣的查詢?

在您的INSERT中,將tempsquads鏈接到country:

INSERT INTO CLUBS(name, cid)
(SELECT t.club_name, c.cid
FROM tempsquads t
INNER JOIN COUNTRIES c ON t.club_country=c.name)

不要將國家/地區名稱字段添加到俱樂部表格 - 當您需要名稱時,您將鏈接到ID。

暫無
暫無

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

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