Gå til innhold

Slå sammen 2 tabeller til 1 i MySQL


Anbefalte innlegg

Skrevet

Jeg ønsker å slå sammen flere tabeller for å kunne få ryddet litt opp på siden min.

Lett nok, burde det være, men jeg får det faktisk ikke til.

Hvordan skal jeg få puttet dataene fra den ene tabellen over i den andre?

Videoannonse
Annonse
Skrevet

Forutsatt at tabellene er like: Hvis du har phpMyAdmin e.l. kan du eksportere dataene fra den ene tabellen som en .sql-fil, som du så kan laste opp til den andre tabellen veldig enkelt.

 

Dersom tabellene ikke er like, så må du jo lage et script som henter data fra den ene, og så putter de inn i den andre på riktig måte, som du så kjører én gang.

Mulig du kan lage en avansert SQL-query også, som gjør det samme som scriptet ved å bruke subqueries osv, men siden du spør så er vel ikke det noe enklere.

Skrevet

Tabellene er like, men når jeg gjør slik du skisserte, så funket ikke det.

Den ville ikke akseptere det siden det var da 2 innlegg som hadde id=1 og så videre.

Skrevet
Tabellene er like, men når jeg gjør slik du skisserte, så funket ikke det.

Den ville ikke akseptere det siden det var da 2 innlegg som hadde id=1 og så videre.

6382184[/snapback]

Ikke for å virke nesevis eller noe sånt, men det er ting du skulle ha tenkt på tidligere. Det du må gjøre er å lage deg en rutine for å flytte data fra den ene tabellen til den andre samtidig som du gir radene en ny id. Dette medfører også at du evt må rydde opp i fremmednøkler i samme slengen :)

Skrevet

Aha ja. Hvis du har fremmednøkler kan du bare glemme det. Hvis ikke ID-ene betyr noe, så kan du sette det feltet til auto_increment (hvis det ikke allerede er det), og så velge at ID-feltet ikke skal eksporteres. Da vil alle radene få tildelt en ny ID når de settes inn.

Skrevet
Aha ja. Hvis du har fremmednøkler kan du bare glemme det. Hvis ikke ID-ene betyr noe, så kan du sette det feltet til auto_increment (hvis det ikke allerede er det), og så velge at ID-feltet ikke skal eksporteres. Da vil alle radene få tildelt en ny ID når de settes inn.

6382266[/snapback]

Nei da, det er ikke bare å glemme det hvis du har fremmednøkler. Men det blir en "interessant" oppgave å løse :)

Skrevet
Aha ja. Hvis du har fremmednøkler kan du bare glemme det. Hvis ikke ID-ene betyr noe, så kan du sette det feltet til auto_increment (hvis det ikke allerede er det), og så velge at ID-feltet ikke skal eksporteres. Da vil alle radene få tildelt en ny ID når de settes inn.

6382266[/snapback]

Hmmm, jeg finner ikke noe punkt i PHPmyAdmin, heller i exportvinduet, for å kunne utelate punkter fra å bli eksportert.

Skrevet

Du kan bare slette hele ID-kolonnen fra tabellen, for du skal jo fjerne tabellen etterpå uansett. Alternativt kan du kjøre noe regex-replace på filen etter eksoport.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...