|漫画名称 |创建年份 |公司 | ------------- | ------------- |------------ | |小猪猪|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>插入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粉7382485222023-08-03 14:38:57
一个方法是先将数据插入到一个临时表中。
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