kostenloser Webspace werbefrei: lima-city


Daten von einer Tabelle in eine andere schieben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    q*****4

    Hallo,

    ich steh gerade wie der Ochse vorm Berg.

    Mein Problem ist folgendes.

    DB:
    tlb_songs
    pk_id, fk_artist, ...., songtext, ...
    
    tlb_lyrics (neu)
    pk_id, lyric


    nun möchte ich aus dem Feld songtext die Texte extrahieren und in die tlb_lyrics schieben. Und dabei in songtext die pk_id des Lyrics aus tlb_lyrics eintragen, damit ich aus dem feld songtext dann fk_lyric machen kann.

    Könntet ihr mir mit einem SQL Kommando weiter helfen?

    Danke schon im Voraus für eure Hilfe

    Beitrag zuletzt geändert: 26.9.2009 14:33:19 von qwertz4
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e********l

    Das geht mit einem einzelnen Statement nicht. Und davon abgesehen erzeugst du auf die Art und Weise doch redundante Daten. Warum also das ganze? Es macht mehr Sinn den Songtext aka Lyrics in einer der beiden zu speichern und auf die andere zu verzichten. Dann wäre die DB normalisiert ^^
  4. Autor dieses Themas

    q*****4

    Damit habe ich doch keine redundanten Daten oder ?

    Ich möchte die Songtexte ausgliedern, da ich diese nur bei bedarf im Player nachlade. Damit hätte ich ein wenig Performance rausgeholt.

    ich möchte dass dann jeder song auf einen Eintrag in der Lyrics Tabelle Referenziert.

    Inzwischen bin ich auch soweit, dass es wohl mit einem SQL alleine nicht klappt, aber vielleicht klappt das mit mehren sqls. Zur noch kann ich auch an die Tabellen temporär ein Feld anhängen. Aber ich versteh noch nicht genau, wie ich die Daten von der einen Tabelle in die andere bringe.

    Ich bräuchte ja dann sowas wie ein Insert und SELECT verschachtelt. Leider bin ich mit sql ein wenig auf Kriegsfuß :-) bin eher in der C und C++ Welt unterwegs, deshalb bitte ich hier um Hilfe.
  5. c****s

    qwertz4 schrieb:
    Ich bräuchte ja dann sowas wie ein Insert und SELECT verschachtelt. Leider bin ich mit sql ein wenig auf Kriegsfuß :-) bin eher in der C und C++ Welt unterwegs, deshalb bitte ich hier um Hilfe.

    Das kann SQL ohne Probleme, zum Beispiel:
    insert into tblChristians (select firstname, lastname from tblPersons where credulousness > 1000)

    Falls die Tabelle tblChritians nur zwei Spalten firstname und lastname hat oder aber alle anderen Spalten nullbar sind oder Defaultwerte haben.
  6. Folgender Vorgang zum Umschaufeln und Update der Daten:

    temporäres Feld im tlb_lyrics anlegen: pk_tmp

    Daten umschaufeln:
    INSERT into tlb_lyrics (pk_tmp,lyric) select pk_id, songtext from tlb_songs;

    Feld umbenennen:
    tlb_songs.songtext in fk_id

    Fremdkeys ändern:
    UPDATE tlb_songs INNER JOIN tlb_lyrics ON tlb_songs.pk_id = tlb_lyrics.pk_tmp SET tlb_songs.fk_id=tlb_lyrics.pk_id;

  7. Autor dieses Themas

    q*****4

    Hallo

    vielen Danke für die Hilfe, hat wunderbar funktioniert.

    Ich habe die SQL´s noch ein wenig verfeinert

    INSERT into tlb_lyrics (pk_tmp,lyric) select pk_id, songtext from tlb_songs Where songtext is not NULL
    Update tlb_songs set songtext=NULL
    ALTER TABLE `tlb_songs` CHANGE `songtext` `fk_lyrics` INT NULL DEFAULT '-1' 
    UPDATE tlb_songs INNER JOIN tlb_lyrics ON tlb_songs.pk_id = tlb_lyrics.pk_tmp SET tlb_songs.fk_lyrics=tlb_lyrics.pk_id;


    Herzlichen Dank nochmal an alle, die sich an dem Thema beteiligt haben

    @Admin das Thema kann geschlossen werden

    Edit by nikic: gemacht

    Beitrag zuletzt geändert: 7.10.2009 16:48:26 von nikic
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!