• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

INSERT INTO mit VALUES und SELECT in MySQL

chr_sch

Neues Mitglied
Hallo,

ich will eine Insert-Anweisung basteln, die Daten in eine Tabelle schreibt. Dabei sollen einige Daten aus einer SELECT-Anweisung kommen und eine Spalte der Tabelle soll mit einem VALUE gefüllt werden.

Code:
INSERT INTO Spiele (heimteam,auswaertsteam) SELECT heim.name AS heimteam, auswaerts.name AS auswaertsteam 
    FROM Mannschaften AS heim
        INNER JOIN Mannschaften AS auswaerts
            WHERE NOT heim.name = auswaerts.name;


Diese Anweisung funktioniert einwandfrei. Jedoch möchte ich dabei in die Spalte "saison" der Tabelle "Spiele" einen konstanten Wert "2012" eintragen lassen.

Hier die Tabelle "Spiele"
Code:
CREATE TABLE Spiele    (
datum                 DATE,    
heimteam             VARCHAR(100) NOT NULL REFERENCES Mannschaften(id),
auswaertsteam     VARCHAR(100) NOT NULL REFERENCES Mannschaften(id),
heimtore              INTEGER,
auswaertstore       INTEGER,
saison                 INTEGER NOT NULL REFERENCES Saison(Jahr),

CONSTRAINT pk_spiele PRIMARY KEY (saison, heimteam, auswaertsteam)
);

Hab schon ordentlich rumprobiert, aber ich kriege ich es einfach nicht hin. Hab auch schon ordentlich im Internet gesucht und leider nichts brauchbares gefunden. Wenn ich das nachher per UPDATE korrigiere, dann habe ich es. Die Aufgabe (Studium) besagt jedoch, dass ich das mit einer INSERT-Anweisung hinkriegen muss.

Meine Idee war:

Code:
INSERT INTO Spiele (saison,heimteam,auswaertsteam) VALUES(2012,SELECT heim.name AS heimteam, auswaerts.name AS auswaertsteam 
    FROM Mannschaften AS heim
        INNER JOIN Mannschaften AS auswaerts
            WHERE NOT heim.name = auswaerts.name);

Weiß jemand was zu tun ist???
 
Machs mal so:

Code:
INSERT INTO Spiele (heimteam,auswaertsteam, saison) SELECT heim.name AS heimteam, auswaerts.name AS auswaertsteam, '2012' 
    FROM Mannschaften AS heim
        INNER JOIN Mannschaften AS auswaerts
            WHERE NOT heim.name = auswaerts.name;

Ganz einfach, ne? ;)
 
Zurück
Oben