У меня есть база данных MySQL с таблицей отношений, которую можно упростить до:
CREATE TABLE `Paths` (
`origin` char(32) NOT NULL,
`destination` char(32) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
)
Это отношение многие ко многим.Я хочу удалить все пути, где все пути из этого источника ведут только к определенному месту, например, Neverland
.
Этот SQL должен работать:
DELETE FROM Paths WHERE origin IN (SELECT DISTINCT origin FROM Paths WHERE destination = 'Neverland') AND origin NOT IN (SELECT DISTINCT origin FROM Paths WHERE destination <> 'Neverland');
Но есть ли лучший, более эффективный способ?
Спасибо!