Есть 2 таблицы Departments и Users, у Users есть поле idDep, которое дублирует поле id таблицы Departments -- таким образом они связаны.
"Проблема" стандартная, при удалении какой либо записи из Departments связанные с ней записи в Users остаются. Я решил эту "задачу" следующим образом.
Сперва удаляем все записи с нужным id из таблицы Departments:
DELETE FROM Departments WHERE Departments.id=?;
Затем удаляем все записи с нужным idDep (который совпадает с id таблицы Departments) из таблицы Users.
DELETE FROM Users WHERE Users.idDep=?;
Получается 2 запроса -- внутренне чутьё подсказывает, что это можно вместить в один запрос:
DELETE Departments , Users FROM Departments , Users WHERE Departments.id=? AND Departments.id = Users.idDep;
Но в этом случае, если в таблице Users нет записей, где Departments.id = Users.idDep, то запрос не отрабатывает, и записи Departments не удаляются -- а эта функция должна быть, так как может быть отдел, в котором пока нет пользователей и его нужно удалить.