2016-07-05 16 views
-2

Ich versuche, eine Einfügung in select mit mysql durchzuführen. Ist es möglich, Daten wie diese einzufügen? oder gibt es eine andere Möglichkeit, das zu tun?So führen Sie eine Einfügung in select

A = 17

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT (Y,Z) FROM TABLE2 
    WHERE CONDITION, A 

Danke,

+5

3 Spalten, 2 Werte. Warum würde das nicht funktionieren? –

+0

Die Tabelle1 3 Spalte (x1, x2, x3), die Daten einfügen (Y, Z) aus Tabelle2 und A = 7 – Gaetan

Antwort

0

bekommen sie von den auserwählten statment

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT (Y,Z,17) FROM TABLE2 
    WHERE CONDITION; 
+0

@Gaetan Bitte überprüfen Sie dies –

0

Von den Blicken der Anfrage, es sieht aus wie Sie A in Spalte eingefügt werden soll. Ihre Abfrage sollte wie folgt aussehen:

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT Y,Z,A FROM TABLE2 
    WHERE CONDITION 

Oder Sie können den Wert von A direkt sofort einsetzen, vorausgesetzt, dass es eine ganze Zahl.

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT Y,Z,17 FROM TABLE2 
    WHERE CONDITION 
0

Werfen Sie einen Blick auf INSERT ... SELECT Syntax ein bisschen mehr, wenn es nicht sinnvoll ist.

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT Y,Z,A FROM TABLE2 
    WHERE A = 17 

Manchmal möchte man auch fest codierten Daten (das heißt 17) sonst kann es sein, Unique-Einschränkung fehlschlagen usw. So verwenden folgende in einer solchen Situation einzusetzen, wo Sie einige Werte der Spalten außer Kraft setzen.

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT Y,Z,17 FROM TABLE2 
0

sollte diese

arbeiten
INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT Y,Z,17 FROM TABLE2 
    WHERE CONDITION 
0

Vielleicht so etwas wie?

INSERT INTO TABLE1 (x1, x2, x3) 
    SELECT (X,Y,Z) FROM TABLE2 
    WHERE A = 17 
Verwandte Themen