Sagen wir, Du hast zwei Tabellen eine mit Kategorien (der Automarken) und in der anderen stehen unterschiedliche Fahrzeuge dieser Marke (Z3, X5, C1, ...)
Struktur:
Code:
id title
1 BMW
2 Audi
3 Trabant
Fahrzeuge (sid = StrukturID):
Code:
id sid title
1 1 Z3
2 2 A8
3 2 S8
4 1 M3
5 1 7.45i
6 1 C1
7 1 X5
Code:
-- Erstellen
DROP TABLE IF EXISTS `fahrzeuge`;
CREATE TABLE `fahrzeuge` (
`id` int(11) NOT NULL auto_increment,
`sid` int(11) NOT NULL default '0',
`title` varchar(10) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;
INSERT INTO `fahrzeuge` VALUES (1, 1, 'Z3');
INSERT INTO `fahrzeuge` VALUES (2, 2, 'A8');
INSERT INTO `fahrzeuge` VALUES (3, 2, 'S8');
INSERT INTO `fahrzeuge` VALUES (4, 1, 'M3');
INSERT INTO `fahrzeuge` VALUES (5, 1, '7.45i');
INSERT INTO `fahrzeuge` VALUES (6, 1, 'C1');
INSERT INTO `fahrzeuge` VALUES (7, 1, 'X5');
DROP TABLE IF EXISTS `struktur`;
CREATE TABLE `struktur` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(10) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;
INSERT INTO `struktur` VALUES (1, 'BMW');
INSERT INTO `struktur` VALUES (2, 'Audi');
INSERT INTO `struktur` VALUES (3, 'Trabant');
Jetzt willst Du alle BMWs aus dem Sortiment nehmen (wie krank muss man...)
Code:
-- Loeschen
DELETE fahrzeuge.*
FROM fahrzeuge, struktur
WHERE fahrzeuge.sid=struktur.id AND
struktur.title='BMW';
DELETE FROM struktur
WHERE struktur.title='BMW'
Wenn Du nicht mit IDs arbeitest, ist das der sicherste und vermutlich auch einzige Weg, alle Daten zu löschen.
Wer mit IDs arbeitet braucht auch zwei Abfragen, aber der arbeitet dann immer nur mit einer Tabelle. So er denn will.
Alles klarofix?