php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.11.2011, 13:25  
Neuer Benutzer
 
Registriert seit: 16.10.2011
Beiträge: 20
PHP-Kenntnisse:
Anfänger
dida110 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] MYSQL DELETE Query mit JOINS

Hallo zusammen
Ich will mit einem DELETE Befehl sämtliche Einträge eines Benutzers löschen.
Dafür habe ich mir folgenden Code gemacht, um erst mal zu schauen ob alles korrekt ausgewählt wird:

PHP-Code:
SELECT
    
*
FROM `users`

LEFT JOIN `users_kontaktdatenON `users`.`id` = `users_kontaktdaten`.`benutzer_id`
LEFT JOIN `users_nachrichtenON `users`.`id` = `users_nachrichten`.`benutzer_id`
LEFT JOIN `users_picturesON `users`.`id` = `users_pictures`.`benutzer_id`
LEFT JOIN `users_profilON `users`.`id` = `users_profil`.`benutzer_id`
LEFT JOIN `users_profil_factsON `users`.`id` = `users_profil_facts`.`benutzer_id`

WHERE
`users`.`id` = '44' 
Der funktioniert auch!

Jetzt müsste ich doch einfach das SELECT gegen das DELETE austauschen können? Ich habe auch schon fleissig gegoogelt und folgende Seite gefunden, bei der DELETE mit JOIN erklärt ist: http://dev.mysql.com/doc/refman/5.0/en/delete.html
Aber irgendwie klappt das so nicht

PHP-Code:
DELETE
FROM 
`users`

LEFT JOIN `users_kontaktdatenON `users`.`id` = `users_kontaktdaten`.`benutzer_id`
LEFT JOIN `users_nachrichtenON `users`.`id` = `users_nachrichten`.`benutzer_id`
LEFT JOIN `users_picturesON `users`.`id` = `users_pictures`.`benutzer_id`
LEFT JOIN `users_profilON `users`.`id` = `users_profil`.`benutzer_id`
LEFT JOIN `users_profil_factsON `users`.`id` = `users_profil_facts`.`benutzer_id`

WHERE
`users`.`id` = '44' 
Hat jemand eine andere Anleitung oder ein Tip was der Fehler sein könnte?

Freundliche Grüsse dida110
dida110 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.11.2011, 13:29  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

der Löschbefehl würde schon funktionieren - nur leider zäumst du das Pferd von hinten auf - du musst erst die Einträge des Users in den anderen Tabellen löschen - und soweit ich SQL / MySQL kenne funktioniert das nur über eigene Queries - DANN kannst du den zugehörigen User löschen .. die Fremdschlüsselbeziehungen verhindern es vorher
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 25.11.2011, 13:33  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Du brauchst keine andere Anleitung, du musst nur genauer hinsehen:
Code:
DELETE users FROM users LEFT JOIN ...
oder (gleichbedeutend)
Code:
DELETE FROM users USING users LEFT JOIN ...
Deine Ergebnisse setzen sich ja aus mehreren Tabellen zusammen, du musst MySQL daher explizit anweisen, aus welcher Tabelle die Zeilen gelöscht werden sollen.

Edit: Ach so, du WILLST die Zeilen aus allen Tabellen löschen... das hieße dann:
Code:
DELETE users, users_kontaktdaten, users_pictures, ... FROM users LEFT JOIN ...
Sofern du Foreign Key Constraints für die Beziehungen benutzt, gilt allerdings eagles Einwand. Ich gehe jedoch nicht davon aus, ansonsten hättest du die Constraints sicher mit ON DELETE CASCADE eingerichtet und müsstest dir jetzt gar keine Gedanken beim Löschen machen

Geändert von fab (25.11.2011 um 13:36 Uhr).
fab ist offline   Mit Zitat antworten
Alt 25.11.2011, 13:33  
Neuer Benutzer
 
Registriert seit: 16.10.2011
Beiträge: 20
PHP-Kenntnisse:
Anfänger
dida110 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von eagle275 Beitrag anzeigen
der Löschbefehl würde schon funktionieren - nur leider zäumst du das Pferd von hinten auf - du musst erst die Einträge des Users in den anderen Tabellen löschen - und soweit ich SQL / MySQL kenne funktioniert das nur über eigene Queries - DANN kannst du den zugehörigen User löschen .. die Fremdschlüsselbeziehungen verhindern es vorher
Herzlichen Dank für deine Antwort.
Ich habe alle Beziehungen gelöscht um dies auszuschliessen...
dida110 ist offline   Mit Zitat antworten
Alt 25.11.2011, 13:38  
Neuer Benutzer
 
Registriert seit: 16.10.2011
Beiträge: 20
PHP-Kenntnisse:
Anfänger
dida110 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von fab Beitrag anzeigen
Du brauchst keine andere Anleitung, du musst nur genauer hinsehen:
Code:
DELETE users FROM users LEFT JOIN ...
oder (gleichbedeutend)
Code:
DELETE FROM users USING users LEFT JOIN ...
Deine Ergebnisse setzen sich ja aus mehreren Tabellen zusammen, du musst MySQL daher explizit anweisen, aus welcher Tabelle die Zeilen gelöscht werden sollen.

Edit: Ach so, du WILLST die Zeilen aus allen Tabellen löschen... das hieße dann:
Code:
DELETE users, users_kontaktdaten, users_pictures, ... FROM users LEFT JOIN ...
Sofern du Foreign Key Constraints für die Beziehungen benutzt, gilt allerdings eagles Einwand. Ich gehe jedoch nicht davon aus, ansonsten hättest du die Constraints sicher mit ON DELETE CASCADE eingerichtet und müsstest dir jetzt gar keine Gedanken beim Löschen machen
Danke viel mal ich denke das wird mein Problem lösen ich werde noch bescheid geben, wenn ich es ausprobiert habe vielen Dank
dida110 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
[Erledigt] mysql query in Schleife? Bitte nicht wernersbacher PHP Einsteiger 2 08.03.2011 12:36
MySQL - Invalid query: Unknown column 'testpasswort' in 'field list' Mo3 PHP Tipps 2010 2 10.05.2010 20:18
MySQL: INSERT INTO oder UPDATE verknüpft in einem Query juice122 Datenbanken 21 06.05.2010 20:25
[Erledigt] In String nach einem Wort suchen -> MySQL Query durchführen markiloy PHP Tipps 2010 14 29.04.2010 19:40
[Erledigt] MySQL Query verschiedene Ergebnisse PHP und MySQL Matt0815 Datenbanken 2 31.03.2010 19:37
[Erledigt] MySql Mehrfach DELETE JackdasRipperl Datenbanken 3 24.03.2010 11:41
[Erledigt] MySQL Link Resource in einer statischen Variablen speichern Lenki PHP-Fortgeschrittene 8 18.03.2010 16:37
Query mit zwei Joins Datenbanken 1 16.01.2006 15:53
MySQL Query Browser c01001 Datenbanken 6 14.01.2006 22:13
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] Datenbank im MySQL Query Browser PHP Tipps 2005 0 07.02.2005 13:54
mysql query fehler Datenbanken 6 19.01.2005 23:44
mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
[Erledigt] komplizierter query mit LEFT JOINs und relationen Datenbanken 2 03.09.2004 11:53
mysql Fehler - query was empty Anuschka Datenbanken 2 01.09.2004 00:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql join erklärt update, mysql löschen verhindern, mysql delete queries, mysql ein query mehrere deletes, mysql delete from where, mysql delete query php, mysql delete left join, query mysql delete befehl, mysql löschen mit left join, mysql delete from where in, mysql delete where in, mysql delete join, mysql delete from, mysql delete, mysql delete user, php mysql delete cascade mit left join, php mysql delete cascade mit join, delete aus left join php

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:41 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