MYSQL - Daten von einer Tabelle in eine ander kopieren

Gast #4411544
Lesenswert?

Hallo,
ich versuche gerade vergeblich einer Tabelle eine neue Zeile 
hinzuzufügen, die aus einer Konstanten (PHP-Variable) und 2 Einträgen 
einer anderen Tabelle besteht.

Mein Versuch in PHPMyAdmin:
1
INSERT INTO `daydata`
2
  ( 
3
    `Date` , `Offset` , `Gain`
4
  )
5
SELECT
6
  (
7
    '2015-12-29' , `Offset` FROM `parameters`, `Gain` FROM `parameters`
8
  )

Fehlermeldung:
#1064 - You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use 
near 'FROM `parameters`, `Gain` FROM `parameters`
         )' at line 7

Die Tabelle 'parameters' besteht derzeit nur aus einer Zeile, weshalb 
die Abfrage
1
SELECT `Offset` FROM `parameters`
auch nur einen Wert zurückliefert.

Wie geht es richtig?

Michael
Gast #4411576
Lesenswert?

Hallo,
leider werde ich aus Euren Antworten und der verlinkten Seite nicht 
schlau.

So funktionierts auch nicht:
1
INSERT INTO `daydata`
2
  ( 
3
    `Date` , `Offset` , `Gain`
4
  )
5
SELECT
6
  (
7
    '2015-12-29' , `Offset`,`Gain` FROM `parameters`
8
  )
und so auch nicht:
1
INSERT INTO `daydata`
2
  ( 
3
    `Date` , `Offset` , `Gain`
4
  )
5
SELECT
6
  (
7
    '2015-12-29' , SELECT `Offset`,`Gain` FROM `parameters`
8
  )
Wie Ihr seht, bin ich blutiger Anfänger

Und wo brauche ich ein Semikolon? Habe ich noch bei keiner MySQL-Anfrage 
benötigt.

Michael
Gast #4411578
Lesenswert?

Bitte lies die Fehlermeldungen!
Ich wette, die lauten jetzt anders, richtig?

Ich sehe sofort, dass
1
SELECT
2
  (
3
    '2015-12-29' , SELECT `Offset`,`Gain` FROM `parameters`
4
  )

nicht funktionieren kann. Da ist ein SELECT zuviel.
Gast #4411587
Lesenswert?

Aber Mysql-Wichtigtuer hat schon gewissermaßen trotzdem Recht:

Die Klammern sind überflüssig. Siehe unter obigem Link!
Lediglich im INSERT-Statement werden sie benötigt, um die Spaltennamen 
anzugeben.
Gast #4411596
Lesenswert?

Thomas schrieb:
> Lies mal unter obigem Link den Post von "Haakon Meland Eriksen"!
> Er beschreibt ganz gut, wie dieses Statement funktioniert.
>
> (Es reicht, die ersten 9 Zeilen zu lesen. Ohne Leerzeilen...)

Das funktioniert ja auch, wenn ich wirklich alle 3 Werte kopieren will.
Ich kriegs aber nicht hin, nur 2 Werte zu kopieren und den 3. als 
Konstante/PHP-Variable reinzuschreiben.

Michael
Gast #4411597
Lesenswert?

Thomas schrieb:
> Aber Mysql-Wichtigtuer hat schon gewissermaßen trotzdem Recht:
>
> Die Klammern sind überflüssig. Siehe unter obigem Link!
> Lediglich im INSERT-Statement werden sie benötigt, um die Spaltennamen
> anzugeben.

Das wars, danke!

Wer kommt denn da drauf, dass man zu viele Klammern setzen kann :-)
In allen mir bisher bekannten Programmiersprachen kann man eigentlich 
nie zu viel Klammern setzen (C, PHP, Javascript, Pascal, Python, ...)

Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren