php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 20.10.2008, 21:52  
Neuer Benutzer
 
Registriert seit: 20.10.2008
Beiträge: 10
wegfressen befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] MySQL Update

Hallo zusammen,
ich bräuchte einen denkanstoß. Komme selbst nicht auf die Lösung.

Ich habe eine DB in dem Stil:

cID pID lID parentID
10 | 52 | 0 | 0
13 | 52 | 1 | 0
32 | 52 | 2 | 0
42 | 55 | 0 | 0
55 | 55 | 1 | 0
62 | 55 | 2 | 0
Jetzt will ich die parentID updaten. Der Wert soll immer dem der cID entsprechen, wo die lID=0 und die pID gleich sind. Nur wenn lID=0 ist bleibt die parentID=0;

das heiß meine Tabelle müsste wenn fertig so aussehen
cID pID lID parentID
10 | 52 | 0 | 0
13 | 52 | 1 | 10
32 | 52 | 2 | 10
42 | 55 | 0 | 0
55 | 55 | 1 | 42
62 | 55 | 2 | 42

muss alle werte bei denen die lID=0 in eine andere Tabelle schreiben und dann das ganze verkünpfen?

grüße aus freiburg
tim

Geändert von wegfressen (21.10.2008 um 08:28 Uhr). Grund: Fehler in der Tabelle
wegfressen ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.10.2008, 07:54  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Erst hab ich noch gedacht ich versteh was du meinst, doch dann kam das Beispiel... hä?
cycap ist offline   Mit Zitat antworten
Alt 21.10.2008, 08:02  
Neuer Benutzer
 
Registriert seit: 20.10.2008
Beiträge: 10
wegfressen befindet sich auf einem aufstrebenden Ast
Standard

ok, sorry Fehler im Beispiel! Probiere es zusätzlich mal anderst.

Die Problemstellung ist folgende: Alle Datenreihen bei welchen die lID=0 ist, sind die Übergeordneten Reihen für die Daten mit der gleichen pID.
Bildlich würde das so aussehen:

10 | 52 | 0 | 0
13 | 52 | 1 | 0
32 | 52 | 2 | 0
42 | 53 | 0 | 0
55 | 53 | 1 | 0
62 | 53 | 2 | 0

deshalb muss die parentID auf die cID verweisen.

cID pID lID parentID
10 | 52 | 0 | 0
13 | 52 | 1 | 10
32 | 52 | 2 | 10
42 | 53 | 0 | 0
55 | 53 | 1 | 42
62 | 53 | 2 | 42

Geändert von wegfressen (21.10.2008 um 08:07 Uhr). Grund: zu schnell abgesendet
wegfressen ist offline   Mit Zitat antworten
Alt 21.10.2008, 08:05  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Bist du sicher das die letzte Zahl ne 62 sein muss? Dann hab ichs immer noch nicht verstanden.
cycap ist offline   Mit Zitat antworten
Alt 21.10.2008, 08:10  
Neuer Benutzer
 
Registriert seit: 20.10.2008
Beiträge: 10
wegfressen befindet sich auf einem aufstrebenden Ast
Standard Hast Recht!

sorry Fehler im Beispiel s.o.
wegfressen ist offline   Mit Zitat antworten
Alt 21.10.2008, 08:15  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ja den Fehler hast du im ersten Beispiel auch schon gemacht... deshalb hab ich da auch keine Logik gesehen. Wozu soll das überhaupt gut sein?
cycap ist offline   Mit Zitat antworten
Alt 21.10.2008, 08:26  
Neuer Benutzer
 
Registriert seit: 20.10.2008
Beiträge: 10
wegfressen befindet sich auf einem aufstrebenden Ast
Standard

Fehler war nur im ersten. das zweite stimmt so.
Ich muss daten von einer DB in eine andere rüberschieben. Dort ist die Struktur bereits vorgeben.
gruß Tim

Geändert von wegfressen (21.10.2008 um 08:27 Uhr). Grund: zu spät gelesen
wegfressen ist offline   Mit Zitat antworten
Alt 21.10.2008, 08:35  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Nun wenn das so ist, dann kannst du ja das Ergebnis von dieser Abfrage exportieren:

Code:
SELECT t1.cID,t1.pID,t1.lID,IF(t1.lID>0,t2.cID,0) AS parentID 
 FROM tab AS t1
 LEFT JOIN tab AS t2 ON t1.pID = t2.pID AND lID = 0
So ungefähr, habs nicht getestet.
cycap ist offline   Mit Zitat antworten
Alt 21.10.2008, 09:12  
Neuer Benutzer
 
Registriert seit: 20.10.2008
Beiträge: 10
wegfressen befindet sich auf einem aufstrebenden Ast
Standard

danke! gute idee die Abfrage zu Exportieren, ich habe gestern UPDATE versucht, nur da gibts Probleme mit den Alias.

der Code funtkioniert soweit (bei der letzen lID hat die Tabellen zuweisung gefehlt).
Irgenwas stimmt mit der Zuweisung nocht nicht. Anstatt die Übergeordnete ID einzutragen schreibt er NULL.

cID pID lID parentID
10 | 52 | 0 | 0
13 | 52 | 1 | NULL
32 | 52 | 2 | NULL
42 | 53 | 0 | 0
55 | 53 | 1 | NULL
62 | 53 | 2 | NULL
wegfressen ist offline   Mit Zitat antworten
Alt 21.10.2008, 09:18  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
ich bräuchte einen denkanstoß
hast du ja jetzt. Machs mal so:

Zitat:
SELECT t1.cID,t1.pID,t1.lID,IF(t1.lID<1,0.t2.cID) AS parentID
FROM tab AS t1
LEFT JOIN tab AS t2 ON t1.pID = t2.pID AND t1.lID = 0
cycap ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mysql startet unter Debian nach Update nicht mehr namlit Server, Hosting und Workstations 4 05.08.2008 15:49
[Erledigt] MySQL UPDATE tut nichts cycap Datenbanken 22 04.06.2008 13:09
MySQL Update Syntax Error PHP Tipps 2006 2 14.03.2006 18:09
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
[Erledigt] mysql: INSERT und wenn vorhanden UPDATE Datenbanken 7 07.01.2006 09:54
mysql problem: mysql update wird nicht ausgeführt schmiddy PHP Tipps 2007 4 27.12.2005 20:35
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
einfache mysql abfrage und mysql update haut nicht ganz hin djrace PHP Tipps 2005-2 6 12.08.2005 15:28
Update in mysql funzt nicht maeck PHP Tipps 2005-2 4 27.06.2005 22:52
Error nach mySQL update: mysql_fetch_array() PHP Tipps 2005 5 04.02.2005 17:16
MySQL UPDATE Befehl funktioniert nicht PHP Tipps 2005 6 24.01.2005 15:03
mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
php / Mysql Update auf neuste Version PHP Tipps 2007 5 05.01.2005 19:34
Problem bei MYSQL / Update Resource #id Fehler PHP Tipps 2004 2 29.09.2004 13:09
[Erledigt] Wieso geht das mysql update nich PHP Tipps 2004 6 30.07.2004 11:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
auf mysql 55 updaten, update datenreihen php mysql

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:53 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum