Fügen Sie Daten in eine Tabelle ein, indem Sie auf Spalten aus einer anderen Tabelle in SQL verweisen
P粉342101652
P粉342101652 2023-08-02 16:27:21
0
1
547
<p>Ich habe zwei Tabellen erstellt, eine ist animation_companies (Animationsfirma) und die andere ist cartoon_characters (Zeichentrickfiguren). Jetzt erhalte ich ein Dokument mit der Aufschrift „Es wird simuliert, dass ein Vorgesetzter die Eingabe von Informationen in eine von mir erstellte Datenbank anfordert“. Die Daten sehen folgendermaßen aus:<br /><br />Die Tabelle „animation_companies“ enthält nur die folgenden drei Datensätze:</p><p><br /></p> <pre class="brush:php;toolbar:false;">Warner Bros. Disney Nickelodeon</pre> <p>Die Tabelle cartoon_characters enthält nur vierzehn (14) Datensätze, einschließlich des Namens der Figur, des Erstellungsjahres und der Firma, der die Zeichentrickfigur gehört. <br /><br />Die Firmen „Warner Bros.“, „Disney“ und „Nickelodeon“ dienen nur zu Anzeigezwecken und müssen in der Tabelle „animation_companies“ referenziert werden.</p><p><br /></p> <pre class="brush:php;toolbar:false;">|Cartoon-Name |Erstellungsjahr |Unternehmen | ------------- | ------------- |----------- | |Schweineschwein |1935 |Warner Bros.| |Daffy Duck |1937 |Warner Bros.| |Elmer Fudd |1937 |Warner Bros.| |Bugs Bunny |1940 |Warner Bros.| |Nebelhorn Livorno|1946 |Warner Bros.| |Micky Maus |1928 |Disney | |Goofy |1934 |Disney | |Donald Duck |1931 |Disney | |Elsa von Arendelle|2013 |Disney | |Anna von Arendelle|2013 |Disney | |Doug Funnie |1991 |Nickelodeon | |Arnold Shortman|1985 |Nickelodeon | |Tommy Pickles |1991 |Nickelodeon | |Aang |2005 |Nickelodeon |</pre> <p>使用以下语句创建了animation_companies(动画公司)表:</p> <pre class="brush:php;toolbar:false;">CREATE TABLE Animation_Companies ( CompanyID INT PRIMARY KEY AUTO_INCREMENT, Firmenname VARCHAR(100) NICHT NULL ); Die Tabelle cartoon_characters wurde mit dieser Anweisung erstellt: TABELLE Cartoon_Charaktere ERSTELLEN ( cartoonID INT PRIMARY KEY AUTO_INCREMENT, cartoonName VARCHAR(100) NICHT NULL, JahrErstellt INT, OwningCompany INT NOT NULL, CompanyID INT NOT NULL, EINSCHRÄNKUNG Cartoon_Characters_fk_Animation_Companies FREMDSCHLÜSSEL (CompanyID) REFERENZEN Animation_Companies (CompanyID) );</pre> <p> <pre class="brush:php;toolbar:false;">INSERT INTO animation_companies(CompanyName) VALUES ('Warner Bros.'), ('Disney'), ('Nickelodeon');</pre> <p>我面临的问题如下所示:<br /><br />用列列表, 编写插入语句, 插入卡通名称、创建年份和所属公司.<br /><br />Hinweis: <br /><br /> Achten Sie auf Leerzeichen, um den Wert automatisch zu erhöhen durch die Ganzzahl-ID." <br /><br />Dies ist die Anweisung, die ich versucht habe: </p><p><br /></p> <pre class="brush:php;toolbar:false;">INSERT INTO cartoon_characters WERTE (STANDARD, „Porky Pig“, 1935, „Warner Bros.“, 1), (STANDARD, „Daffy Duck“, 1937, „Warner Bros.“, 1), (STANDARD, „Elmer Fudd“, 1937, „Warner Bros.“, 1), (STANDARD, „Bugs Bunny“, 1940, „Warner Bros.“, 1), (STANDARD, „Foghorn Leghorn“, 1946, „Warner Bros.“, 1), (STANDARD, „Mickey Mouse“, 1928, „Disney“, 2), (STANDARD, „Goofy“, 1934, „Disney“, 2), (STANDARD, „Donald Duck“, 1931, „Disney“, 2), (STANDARD, „Elsa von Arendelle“, 2013, „Disney“, 2), (STANDARD, „Anna von Arendelle“, 2013, „Disney“, 2), (STANDARD, „Doug Funnie“, 1991, „Nickelodeon“, 3), (STANDARD, „Arnold Shortman“, 1985, „Nickelodeon“, 3), (STANDARD, „Tommy Pickles“, 1991, „Nickelodeon“, 3), (STANDARD, „Aang“ 2005, „Nickelodeon“, 3);</pre> <p><br /></p>
P粉342101652
P粉342101652

Antworte allen(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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage