У меня есть TableA, которая может иметь много связанных с ним таблиц TableB, а TableB может иметь много связанных с ней строк TableC, у которых TableC есть много строк TableD. Итак, TableA -> TableB -> TableC -> TableD. То, что я хочу сделать, это дать идентификатор строки TableA, выбрать все строки TableD, которые связаны через другие таблицы, и удалить их все.
TableA | TableB | TableC | TableD
--------------------------------------
tableAId | tableAId | tableBId | tableCId
| tableBId | tableCId | tableDId
и запрос, который я пробовал:
DELETE FROM TableD
WHERE TableA.tableAId = 2
AND TableA.tableAId= TableB.tableAId
AND TableB.tableBId= TableC.tableBId
AND TableC.tableCId = TableD.tableCId
образец таблицы
TableA TableB TableC TableD
tableAID | tableAID tableBId | tableBId tableCId | tableCId tableDId
---------|--------------------|---------------------|---------------------
1 | 1 15 | 15 5 | 6 4
2 | 2 16 | 16 6 | 5 3
5 14
5 11
Желаемый результат, учитывая tableAId = 1
TableA TableB TableC TableD
tableAID | tableAID tableBId | tableBId tableCId | tableCId tableDId
---------|--------------------|---------------------|---------------------
1 | 1 15 | 15 5 | 6 4
2 | 2 16 | 16 6 |