2016-09-15 5 views
0

Ich möchte Wert einfügen, die ich mit SELECT zu Tabelle, aber ich habe keine Ahnung, wie man es formatiert, so dass es funktioniert. Wenn ich die SELECT-Anweisung allein versuche, gibt sie den Wert zurück, den ich möchte, aber wenn sie verschachtelt ist, gibt sie 0 zurück, was nicht sein sollte. Ich habe versucht, es in "" '' zu wickeln, aber es funktioniert nicht.SQL geschachtelte SELECT innerhalb INSERT

INSERT 
INTO 
    brand(brand_id, 
    NAME, 
    cat_id) 
VALUES(
    NULL, 
    "value", 
    (
    SELECT 
    cat_id 
    FROM 
    category 
    WHERE 
    cat_id = 'number' 
) 
) 

Antwort

1

Verwenden Sie einfach insert . . . select. Lassen Sie sich die values:

INSERT INTO brand(brand_id, NAME, cat_id) 
    SELECT NULL, 'value', cat_id 
    FROM category 
    WHERE cat_id = 'number'; 

Drei Kommentare:

  • Wenn number ist wirklich eine Zahl, dann keine Anführungszeichen verwenden.
  • Dies unterscheidet sich geringfügig von Ihrer Version, da keine Zeilen eingefügt werden, wenn keine Übereinstimmungen vorhanden sind.
  • Wenn die Unterabfrage genau eine Zeile zurückgibt, sollte Ihre Version funktionieren.
+0

Es funktioniert, danke. Die select-Anweisung verwirrte mich ein wenig, weil ich nicht wusste, dass ich Werte einfügen kann, die nicht einmal in der Tabelle sind. – rtom