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)