透過在SQL中引用另一張表中的列將資料插入一張表中
P粉342101652
P粉342101652 2023-08-02 16:27:21
0
1
555
<p>我已經創建了兩個表,一個是animation_companies(動畫公司),另一個是cartoon_characters(卡通角色)。現在我收到了一個「模擬主管請求插入資訊到我創建的資料庫」的文檔。資料如下:<br /><br />animation_companies(動畫公司)表將只包含以下三個記錄:</p><p><br /></p> <pre class="brush:php;toolbar:false;">Warner Bros. Disney Nickelodeon</pre> <p>cartoon_characters(卡通角色)表將包含僅含有十四(14)筆記錄,包括卡通角色的名稱、創建年份以及擁有該卡通角色的公司。 <br /><br />公司"Warner Bros."、"Disney"和"Nickelodeon"僅用於展示目的,必須從animation_companies(動畫公司)表中引用。</p><p><br />></p>
|漫畫名稱 |創建年份 |公司
| ------------- | ------------- |------------ |
|小豬豬|1935 |華納兄弟|
|達菲鴨 |1937 |華納兄弟|
|艾爾默福德 |1937 |華納兄弟|
|兔八哥|1940 |華納兄弟|
|來航霍恩|1946 |華納兄弟|
|米老鼠 |1928 |迪士尼 |
|高飛 |1934 |迪士尼 |
|唐老鴨 |1931 |迪士尼 |
|阿倫黛爾的艾莎|2013 |迪士尼|
|阿倫黛爾的安娜|2013 |迪士尼|
| 道格芬尼 |1991 |Nickelodeon |
|阿諾德·肖特曼|1985 |尼克頻道|
|湯米·皮克爾斯 |1991 |Nickelodeon |
|Aang |2005 |Nickelodeon |</pre>
<p>使用以下語句建立了animation_companies(動畫公司)表:</p>
建立表格Animation_Companies
(
 CompanyID INT 主鍵 AUTO_INCREMENT,
 公司名稱 VARCHAR(100) NOT NULL
);

表cartoon_characters是使用以下語句建立的:

創建表卡通人物
(
  卡通ID INT 主鍵自動遞增,
  卡通名稱 VARCHAR(100) NOT NULL,
  年創建INT,
  OwningCompany INT NOT NULL,
  CompanyID INT NOT NULL,
    約束Cartoon_Characters_fk_Animation_Companies
    外鍵(CompanyID)參考Animation_Companies(CompanyID)
);</前>
<p>我使用以下語句向animation_companies(動畫公司)表的記錄插入了資料:</p>
<pre class="brush:php;toolbar:false;">插入animation_companies(公司名稱)
VALUES ('華納兄弟'), ('迪士尼'), ('尼克頻道');</pre>
<p>我遇到的問題如下所示:<br /><br />"向Cartoon_Characters(卡通角色)表插入資料:<br /><br />gt;不使用列列表,編寫插入語句,插入卡通名稱、建立年份和類別公司。<br /><br />注意事項:<br /><br />將字串用單引號括起來留意空格自動遞增的值使用DEFAULT 公司透過整數ID進行引用" <br /><br />這是我嘗試的語句:</p><p><br /></p>
<pre class="brush:php;toolbar:false;">INSERT INTO cartoon_characters
VALUES (DEFAULT, 'Porky Pig', 1935, 'Warner Bros.', 1),
       (DEFAULT, 'Daffy Duck', 1937, 'Warner Bros.', 1),
       (DEFAULT, 'Elmer Fudd', 1937, 'Warner Bros.', 1),
       (DEFAULT, 'Bugs Bunny', 1940, 'Warner Bros.', 1),
       (DEFAULT, 'Foghorn Leghorn', 1946, 'Warner Bros.', 1),
       (DEFAULT, 'Mickey Mouse', 1928, 'Disney', 2),
       (DEFAULT, 'Goofy', 1934, 'Disney', 2),
       (DEFAULT, 'Donald Duck', 1931, 'Disney', 2),
       (DEFAULT, 'Elsa of Arendelle', 2013, 'Disney', 2),
       (DEFAULT, 'Anna of Arendelle', 2013, 'Disney', 2),
       (DEFAULT, 'Doug Funnie', 1991, 'Nickelodeon', 3),
       (DEFAULT, 'Arnold Shortman', 1985, 'Nickelodeon', 3),
       (DEFAULT, 'Tommy Pickles', 1991, 'Nickelodeon', 3),
       (DEFAULT, 'Aang' 2005, 'Nickelodeon', 3);</pre>
<p><br /></p>            
P粉342101652
P粉342101652

全部回覆(1)
P粉738248522

一個方法是先將資料插入到一個臨時表中。

INSERT INTO #SomeTempTable
VALUES ('Porky Pig', 1935, 'Warner Bros.', 'Warner Bros');

然後將其與Animation_Companies表進行連接(JOIN)。

INSERT INTO cartoon_characters(cartoonName, YearCreated, OwningCompany, CompanyId)
SELECT t.cartoonName, t.YearCreated, t.OwningCompany, a.CompanyId
FROM #SomeTempTable t
JOIN Animation_Companies a ON a.CompanyName = t.CompanyName
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板