Hi,
Folgendes habe ich ohne Erfolg probiert:
INSERT INTO translation1 (id, lang, keyval, trans) FROM
(
(SELECT 'NULL', de, keyval, de FROM translation WHERE de NOT IS NULL) UNION
(SELECT 'NULL', en, keyval, en FROM translation WHERE en NOT IS NULL) UNION
(SELECT 'NULL', fr, keyval, fr FROM translation WHERE fr NOT IS NULL) UNION
(SELECT 'NULL', it, keyval, fr FROM translation WHERE it NOT IS NULL) UNION
(SELECT 'NULL', es, keyval, fr FROM translation WHERE es NOT IS NULL) UNION
(SELECT 'NULL', el, keyval, fr FROM translation WHERE el NOT IS NULL)
)
ein paar Fehler/Ungenauigkeiten:
1. ausgehend davon, dass du das Feld 'id' deiner Tabelle translation1 auf auto_increment gesetzt hast, brauchst du das Feld id gar nicht angeben (abgesehen davon, dass du es als String angibst, 'NULL' anstatt NULL).
2. das Schlüsselwort FROM in der ersten Zeile ist IMHO falsch. Richtige Syntax:
INSERT INTO
tabellenname (spaltenname,...)
SELECT
...
3. der zweite Wert bei den SELECTS muss jeweils der String 'de', 'en', usw. sein, nicht der Wert der Spalte de, en, usw.
Also (ungetestet):
INSERT INTO
translation1 (lang,keyval,trans)
SELECT
'de',keyval,de FROM translation WHERE (de NOT IS NULL)
UNION SELECT
...
Gruß,
Andreas.