heinetz: Insert into Select ?

Hallo Forum,

Meine DB-Tabelle sieht zur Zeit so aus:

Tabelle 'news':
news_id | level_1 | level_2 | level_3
-------------------------------------
1       | 1       | 0       | 0
2       | 0       | 1       | 0
3       | 1       | 1       | 0
4       | 1       | 0       | 1

Das ganze möchte ich gerne normalisieren:

Tabelle 'news_level':
news_id | level_id
------------------
1       | 1
2       | 2
3       | 1
3       | 2
4       | 1
4       | 3

... und die Werte aus der tabelle 'news'
in die neue Tabelle 'news_level' schreiben.
Das müsste mit einem SQL-Statement gehen,
oder ?

Ich habe bei mysql.com folgendes Beispiel
für 'INSERT ... SELECT' gefunden:

INSERT INTO tbl_temp2 (fld_id)
  SELECT tbl_temp1.fld_order_id
  FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

Sollte sich das auf mein Vorhaben anwenden lassen ?

danke für Tipps und

beste gruesse,
heinetz

  1. Es ist spät...

    aber ich versuche es mir mal aus dem kopf zu saugen

    anhand deines beispieles

    INSERT INTO news_level(news_id,level_id)
    SELECT news_id,'1' FROM news WHERE news.level_1=1

    INSERT INTO news_level(news_id,level_id)
    SELECT news_id,'2' FROM news WHERE news.level_2=1

    INSERT INTO news_level(news_id,level_id)
    SELECT news_id,'3' FROM news WHERE news.level_3=1

    usw.

    sollte so klappen .....

    --------------

    IT & PR - Fenebris.com
    janfeddersen _at_ dunkelnetz _dot_ de
    Kredite, Umschuldung, Finanzen

    1. hi,

      perfekt, genauso geht's. vielen dank!

      beste gruesse,
      heinetz