ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
457
457
EMPFEHLEN
-
Hallo, ich habe eine Tabelle und möchte diese auf eine ander umschreiben.
Aufbau im groben:
Tabelle 1:
id, name, category
Tabelle 2:
id, name, category
Das Problem ansich ist schonmal in der Tabelle 2 sind die "name" mehrmals vorhanden und ich bräuchte nur immer einen.
Beispiel:
Tabelle 2 Eintrag:
Code :1 2 3
1, test, 5 2, test, 5 3, test, 5
Dieser soll in Tabelle 1 dann wie folgt stehen:
Code :1
1, test, 5
Ist so ein Query überhaupt möglich oder muss ich das mit PHP lösen? Wäre natürlich mit PHP einfach aber ich würde gern mein sql bissl verbessern.
Mein erster Ansatz war einmal(funktioniert natürlich nicht):
Code :1 2 3 4
INSERT INTO tabelle1 (name, category) VALUES ( (SELECT name FROM tabelle2), (SELECT category FROM tabelle2))
Hier gibt es 2 Probleme, 1. die 2 SELECT abfragen werfen ja gleich immer alle Elemente aus und deshalb kann er sie ja nicht in einen Datensatz schreiben. 2. Problem ist dass er ja alle kopieren würde und nicht nur einen mit dem gleichen namen.
Würde mich über eine Antwort freuenMit freundlichen Grüßen
Michael Hagl Webentwicklung
Ich würde mich über eine Bewertung meiner Beiträge freuen!
-
Hallo,
was du suchst ist distinct - damit bekommst du jeden Eintrag, der mehrfach vorhanden ist nur einmal
Denke das Feld id ist ein Auto-increment Feld also sollte es so klappen.
Code sql:1 2 3
INSERT INTO Tabelle2 (iname, category) SELECT DISTINCT name, category, FROM Tabelle1
m.f.g
b. zimmel
-
wär die SELECT dann der VALUES? Müsste dann so heissen oder?:
Code sql:1 2 3
INSERT INTO Tabelle1 (id, name, category) VALUES (SELECT DISTINCT id, name, category FROM Tabelle1)
die Frage ist dann auch ob er das ganze alles einfügen würde, weil es ja wieder mehr als ein Datensatz ist.Mit freundlichen Grüßen
Michael Hagl Webentwicklung
Ich würde mich über eine Bewertung meiner Beiträge freuen!
-
denke geht auch ohne values, das checkt sql schon, aber du musst die id weglassen, da solltest du in der neuen Tabelle das Feld id auf automatisch um eins weiter zählen einstellen - dann musst du die id nicht angeben.
Am besten du probierst es einmal aus
Code sql:1 2
SELECT DISTINCT name, category FROM Tabelle1
wirst sehen, jeder Datensatz kommt nur einmal vor.
Zur einfachen Kontrolle kannst du auch noch zum Testen. - hier siehst du dann wie viele Datensätze es mit gleichem Namen und Kategorie es geben würde.
Code sql:1 2 3 4
SELECT DISTINCT name, category, COUNT(1) AS ANZ FROM Tabelle1 GROUP BY name, category
m.f.g
b. zimmel
-
Die Anordnung bei meinen Tabellen ist so und so ein bisschen anders. Vor allem umfangreicher. Hab das nur alles sehr vereinfacht dargestellt
.
Danke auf jeden Fall. Ich werde das mal alles bissl testen, auch wenn ich es mittlerweile mit php gelöst habe
Mit freundlichen Grüßen
Michael Hagl Webentwicklung
Ich würde mich über eine Bewertung meiner Beiträge freuen!
-
Hi,
ich würde hier mit einem Select into arbeiten.
http://dev.mysql.com/doc/refman/5.1/...statement.html
Das GAnze könnte dann so aussehen:
Code :1
SELECT id, DISTINCT name, category INTO tabelle2 FROM tabelle1;
Bin mir hier gerade nicht sicher, ob das Distinct genau dort stehen muss (
), aber prinzipiell sollte es so funktionieren. 
mfg LuigiEd
-
29.06.11 14:55 #7
- Registriert seit
- Feb 2008
- Ort
- Salzhemmendorf(Nds)
- Beiträge
- 51
Ähm...*räusper* Wenn du schon auf das RTFM verweist, dann dürfte es dir aufgefallen sein, dass ein SELECT INTO NUR in lokale Variablen funktioniert und NICHT in Tabellen; weiterst darf das Abfrageergebnis auch nur eine Zeile zurückgeben!
Zitat von luigied
Lies selbst:
Wenn du dir nicht ganz sicher bist, ob es funktioniert (sofern man es nicht selbst getestet hat), dann wäre keine Antwort/Posting besser als ein falsches/irreführendes.
Zitat von MySql-Referenz
Es ist erstaunlich, was man alles findet, wenn man etwas sucht...
Ähnliche Themen
-
daten aus einer tabelle in die andere kopieren bzw. übernehmen
Von Xching im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 30.11.10, 16:30 -
Bestimmte Einträge aus einer Tabelle in eine andere Tabelle kopieren
Von medico im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 29.03.06, 18:42 -
Bestimmte Einträge aus einer Tabelle in eine andere Tabelle kopieren
Von medico im Forum PHPAntworten: 1Letzter Beitrag: 29.03.06, 17:48 -
Slices in andere Datei übernehmen
Von 3ounder im Forum PhotoshopAntworten: 2Letzter Beitrag: 30.12.05, 23:44 -
Variablen von ein Script ins andere übernehmen
Von matze1340 im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 22.08.05, 18:06





Zitieren

Login





