falsches INSERT Statement

sirvival

Erfahrenes Mitglied
Hallo allerseits,

es kann sicher gut sein dass ich mich zu später Stunde total doof anstelle aber ich habe ein Problem mit folgendem SQL Statement:
Code:
INSERT INTO `table` (`table`.`SecHash`, `table`.`Name`, `table`.`StatusID`)
SELECT MD5(CONCAT('Salt',`table`.`ID`, `table`.`Name`)), 'Name' ,`Status`.`ID`
FROM `Status`
WHERE `Status`.`Value` = 'Active'

mySQL meint er kenne `table`.`ID` und `table`.`Name` aus dem SELECT clause nicht, wieso?
 
Hallo sirvival,

du kannst schon mit einem subselect arbeiten!

Wenn du allerdingst damit arbeitest, darfst du bei deinem insert nicht auch noch
Werte angeben, weil das dann doppelt wäre,.

Schau dir mal diese Seite an:

http://dev.mysql.com/doc/refman/4.0/de/insert-select.html

Mit dem INSERT ... SELECT-Statement können Sie schnell viele Zeilen aus einer oder mehreren anderen Tabellen einfügen.

INSERT INTO temporaere_tabelle2 (fldID) SELECT temporaere_tabelle1.fldOrder_ID FROM temporaere_tabelle1 WHERE
temporaere_tabelle1.fldOrder_ID > 100;


Gruß

Harald
 
Hallo Harald,

danke für deine Antwort.

aber ich habe nochmal eine Frage/Problem. Beim googeln bin ich grade auf dass
hier gestoßen, allerdings funktioniert es bei mir nicht.
Code:
IF NOT EXISTS (
SELECT `Zip`.`Zip`, `Zip`.`City`
FROM `Zip`
WHERE `Zip`.`Zip` = '12345'
AND `Zip`.`City` = 'stadt')
INSERT INTO `Zip` (`Zip`.`Zip`, `Zip`.`City`)
VALUES ('12345', 'stadt')

Hast du eine Ahnung wieso?
 
Hat sich erledigt das funktioniert nur unter MSSQL aber nicht unter mySQL.
Da muss ich wohl eine andere Lösung zu dem Problem finden.
 
Hallo sirvival,

warum willst du unbedingt eine kompliziertes Statement schreiben?
Schreib einfach deinen Insert, z. B.

INSERT INTO `Zip` (`Zip`.`Zip`, `Zip`.`City`)
VALUES ('12345', 'stadt')

und frag danach den returncode ab.

Noch einfacher von der Schreibweise:

INSERT INTO `Zip` (`Zip`, `City`)
VALUES ('12345', 'stadt')

Wenn du mit einer Tabelle arbeitest, kannst du dir in der Klammer den Hinweis auf den Tabellennamen sparen, weil das schon eindeutig aus der Angabe hinter "INTO" abgeleitet werden kann.

siehe auch

http://dev.mysql.com/doc/refman/4.0/de/handler.html


Gruß

Harald
 

Neue Beiträge

Zurück