MySQL Tabelle mit "Auflagen" kopieren

querytail

Erfahrenes Mitglied
Hallo zusammen,

ich muss eine Tabelle kopieren, was ich zunächst wie folgt mache:

SQL:
INSERT INTO confadd (id, action, num, peaces) SELECT id, action, num, quantity FROM art

Jetzt kommt's:

Nun besitzt die Tabelle art eine weitere Spalte: parent. In diese Zeile wird nur eine art.id geschrieben, wenn diese Zeile ein child ist, d.h. zu der Zeile mit der eingetragenen art.id (parent) gehört.

Nun muss ich bei der Kopie bewerkstelligen, dass in confadd.num immer nur die num von den Parents eingetragen wird. Jedes Kind erhält dann die gleiche num.

Danke Michael
 
Zuletzt bearbeitet von einem Moderator:
Sofern du nur eine Stuffe hast und es nicht vorkommt, das ein child selber weider parent sein kann, sollte der folgende Code gehen. Wenn doch, wirds a) imens komplizierter und b) währe denn die Frage von welchem parent die num genommen werden sollt.

SQL:
INSERT INTO confadd (
    id, 
    action, 
    num, 
    peaces
)
SELECT
    child.id,
    child.action,
    -- Wenn child keinen parent hat (also selber ein parent ist), 
    -- dann soll die eigene num genommen werden
    IFNULL(parent.num, child.num) AS num,
    child.quantity
FROM
    art AS child
    LEFT JOIN art AS parent
        ON parent.id = child.parent
 
Zuletzt bearbeitet von einem Moderator:
Zurück