SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 15.06.2005, 20:11:34
wollenschlaeger wollenschlaeger ist offline
Anfänger
 
Registriert seit: Mar 2003
Ort: Augsburg
Alter: 48
Beiträge: 116
Löschen aus einer Tabelle

Hallo Zusammen,

ich habe zwei Tabellen. Die erste Tabelle enthält verschiedenste Artikel. In einer zweiten Tabelle wurden die Zu- und Abgänge eingetragen. Verbunden ist das Ganze über eine ID-Nummer. Diese ist in der Artikeltabelle eindeutig, in der zweiten Tabelle wird die Artikelid in dem Feld ID-Artikel gespeichert. Somit eine 1:n Verknüpfung.

Jetzt die entscheidende Frage:

Wie kann ich alle Artikel löschen, die noch keine Buchung in der zweiten Tabelle haben?

Ist der sql Befehl

DELETE * FROM artikel
INNER JOIN buchung ON id.artikel <> id-artikel.buchung

???


Danke für jede Hilfe.

Grüsse
Roland
Mit Zitat antworten
  #2  
Alt 16.06.2005, 08:48:48
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
AW: Löschen aus einer Tabelle

Wenn Du keine zu alte Version von MySQL hast, dann mach's einfach mit SubSelects:
Code:
DELETE
FROM tab2
WHERE id NOT IN (SELECT id FROM tab1)
Mein kompletter Aufbau zum Nachvollziehen:
Code:
DROP TABLE IF EXISTS tab1;
DROP TABLE IF EXISTS tab2;


CREATE TABLE tab1 (
  id int(11) NOT NULL auto_increment,
  marke varchar(20) NOT NULL default '',
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO tab1 VALUES (1, 'BMW');
INSERT INTO tab1 VALUES (2, 'Mercedes');


CREATE TABLE tab2 (
  id int(11) NOT NULL default '0',
  typ varchar(20) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO tab2 VALUES (1, 'M6');
INSERT INTO tab2 VALUES (1, '5.25tds');
INSERT INTO tab2 VALUES (2, 'SL600 AMG');
INSERT INTO tab2 VALUES (3, 'L400');


SELECT marke, typ
FROM tab1 INNER JOIN tab2 ON tab1.id=tab2.id
ORDER BY marke ASC, typ ASC


DELETE
FROM tab2
WHERE id NOT IN (SELECT id FROM tab1)
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 16.06.2005, 10:59:46
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Löschen aus einer Tabelle

Zitat:
Wenn es für die rechte Tabelle keinen übereinstimmenden Datensatz im ON- oder USING-Teil eines LEFT JOIN gibt, wird für die rechte Tabelle eine Zeile benutzt, in der alle Spalten auf NULL gesetzt sind. Das können Sie benutzen, um Datensätze in einer Tabelle herauszusuchen, die in einer anderen Tabelle kein Gegenstück haben:

Code:
select tabelle1.* from tabelle1
           LEFT JOIN tabelle2 ON tabelle1.id=tabelle2.id
           where tabelle2.id is NULL;
-> http://dev.mysql.com/doc/mysql/de/join.html
Mit Zitat antworten
  #4  
Alt 16.06.2005, 14:47:12
wollenschlaeger wollenschlaeger ist offline
Anfänger
 
Registriert seit: Mar 2003
Ort: Augsburg
Alter: 48
Beiträge: 116
AW: Löschen aus einer Tabelle

Vielen Dank für die Lösung, ich konnte es anhand eurer Beschreibung lösen. Habe zuvor allerdings einen etwas umständlicheren Weg gewählt:

Select aller Daten mit einer Verbindung anschließend in ein Array geladen, dann alle Artikel des Herstellers gelöscht und daraufhin das vorherige Array wieder geinserted.

Die von Euch beschriebene Lösung werde ich anstatt meiner einfügen, da dies doch etwas eleganter ist.

Danke und Grüsse
Roland
Mit Zitat antworten
  #5  
Alt 16.06.2005, 14:48:35
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Löschen aus einer Tabelle

Welchen Lösungsweg hast du denn jetzt gewählt?
Mit Zitat antworten
  #6  
Alt 16.06.2005, 18:27:53
wollenschlaeger wollenschlaeger ist offline
Anfänger
 
Registriert seit: Mar 2003
Ort: Augsburg
Alter: 48
Beiträge: 116
AW: Löschen aus einer Tabelle

Die Lösung von C4
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eine bestimmte Zeile aus Tabelle löschen! Seppel_2k PHP Grundlagen 5 02.06.2005 18:23:14
Dateiimport zu mysql Lars_oha PHP für Fortgeschrittene und Experten 10 18.09.2003 08:10:51
Zeile in Tabelle löschen pommespaula PHP für Fortgeschrittene und Experten 1 22.04.2003 16:39:33
Verzeichnis inkl. Dateien löschen doudie PHP für Fortgeschrittene und Experten 5 16.11.2002 22:37:10
MySQL - tabelle in tabelle Gweilo PHP für Fortgeschrittene und Experten 4 09.11.2002 18:41:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:11:34 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt