php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.11.2004, 13:44  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard Datensätze löschen für die kein Eintrag in anderer Tabelle..

Wie kann ich Datensätze löschen für die kein Eintrag in anderer Tabelle existiert:

sprich in table1 stehen zig Datensätze zu denen kein Datensatz in table2 exisitert (table1.nlID = table2.nlID) und die sollen alle gelöscht werden. Irgendwie fehlt mir der Ansatz wie das in einem Query löse, hab atm nur ne extremaufwendige lösung indem ich alle datensätze bestimme die einen partner habe und dann ein delete durchführe mit nem endlos langen WHERE nlID <> XX -Zweig


Tabelle1:

CREATE TABLE `table1` (
`nlID` int(11) NOT NULL auto_increment,
`name` varchar(120) NOT NULL default '',
PRIMARY KEY (`nlrID`),
KEY `nlrID` (`nlrID`)
) TYPE=MyISAM AUTO_INCREMENT=18486 ;

Tabelle2:
CREATE TABLE `table2` (
`ID` int(11) NOT NULL auto_increment,
`nlID` int(11) NOT NULL default '0',
`GroupID` int(11) NOT NULL default '0',
PRIMARY KEY (`nlID`)
) TYPE=MyISAM AUTO_INCREMENT=18494 ;
robo47 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.11.2004, 14:52  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

mir würd schon ein tip reichen, ich würde es gerne in einem query haben, weil das ganze direkt über phpmyadmin ausführbar sein soll
robo47 ist offline   Mit Zitat antworten
Alt 09.11.2004, 14:59  
Erfahrener Benutzer
 
Registriert seit: 19.10.2004
Beiträge: 498
marsch
Standard

Du kannst Dir ja alle IDs aus Tabelle 1 holen, die keine Entsprechung in Tabelle 2 haben und mit
Code:
DELETE FROM
    tabelle1
WHERE
    id IN (...,...,...)
LIMIT
    #anzahl
alle löschen, zähl halt vorher, um wieviele es sich handelt.
__________________
Cheers, Marco
marsch ist offline   Mit Zitat antworten
Alt 09.11.2004, 15:06  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

das ist leider keine 1 query lösung wie ich sie bräuchte :P, ne lösung mit mehr al einem query und ein php-script dazu habe ich bereits
robo47 ist offline   Mit Zitat antworten
Alt 09.11.2004, 15:50  
Erfahrener Benutzer
 
Registriert seit: 19.10.2004
Beiträge: 498
marsch
Standard

OK, es sind 2... aber ich mache Dir keine Hoffnung.
__________________
Cheers, Marco
marsch ist offline   Mit Zitat antworten
Alt 09.11.2004, 22:12  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

schau mal bei http://dev.mysql.com/doc/mysql/de/DELETE.html

so könnte es funktionieren

Code:
Delete table1.* from table1 t1 left join table2 t2 on t1.nlID=t2.nlID where t2.ID is NULL
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Alt 10.11.2004, 09:30  
Gast
 
Beiträge: n/a
Standard

Moin robo47,

so:
PHP-Code:
DELETE FROM table1 USING table1
LEFT JOIN table2
ON table1
.ID=table2.ID
WHERE table2
.ID IS NULL 
Gruß Ghost
  Mit Zitat antworten
Alt 10.11.2004, 09:42  
Erfahrener Benutzer
 
Registriert seit: 19.10.2004
Beiträge: 498
marsch
Standard

Cool, MySql wird doch noch 'n richtiges Datenbanksystem
http://dev.mysql.com/doc/mysql/en/DELETE.html
__________________
Cheers, Marco
marsch 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
Tabelle von anderer Website in eigene übernehmen (+aktualisieren) Softyx PHP Tipps 2008 31 07.07.2008 10:16
Eintrag in DB und Wechsel zu anderer Seite Darson PHP Tipps 2008 25 14.01.2008 16:46
SQL-Abfrage mit Wert aus anderer Tabelle füllen maeck Datenbanken 2 25.07.2007 20:36
where Abfrage in anderer Tabelle?? Matthiasnet Datenbanken 10 11.04.2007 17:35
nur letzten eintrag aus der mysql tabelle anzeigen lassen DaronM PHP Tipps 2007 7 14.11.2005 17:30
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
if(neuer eintrag in mysql tabelle) nickie12 PHP Tipps 2005-2 6 08.08.2005 21:26
Datum eintrag in eine Tabelle!! PHP Tipps 2005-2 23 28.07.2005 12:31
Letzten Eintrag einer MySQL Tabelle auslesen PHP Tipps 2005-2 4 12.07.2005 12:23
Tabellenenum aus anderer Tabelle Datenbanken 3 11.05.2005 10:07
Eintrag in einer Tabelle überprüfen Datenbanken 2 10.01.2005 22:31
[Erledigt] eintrag in Tabelle PHP Tipps 2004 36 29.10.2004 18:03
eintrag in eine tabelle PHP Tipps 2004 6 27.10.2004 00:57
[Erledigt] Letzter Eintrag in einer Tabelle und Top Five einer Tabelle Datenbanken 2 27.09.2004 06:50
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql delete kein eintrag in anderer tabelle, mysql einträge löschen, die in anderer tabelle vorhanden sind, mysql abfrage ohne entsprechung in anderer tabelle, mysql datensatz löschen, der nicht in anderer tabelle vorhanden, datensätze löschen die nicht in anderer tabelle sind, mysql datensätze finden die keine einträge in anderer tabelle haben, sql daten löschen die nicht in anderer tabelle sind, datensätze löschen die nicht in anderer tabelle enthalten sind, sql kein eintrag in anderer tabelle, sql datensatz ohne eintrag in anderer tabelle, mysql einträge löschen ohne eintrag in anderer tabelle, mysql alle einträge die nicht in anderer tabelle sind auslesen, datensÄtze ohne entsprechung in einer anderen tabelle, mysql daten löschen die nicht in der anderen tabelle sind, mysql verknüpte eintrage in einer anderen tabelle löschen, mysql datensätze löschen, die in anderer tabelle fehlen, mysql datensätze, die keine entsprechung in nachschlagetabelle haben, mysql alle datensätze löschen die nicht in anderer tabelle, mysql, datensätze ohne entsprechung, mysql datensatz ohne ensprechung

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.